#include #include #include #include using namespace std; map scape; int main() { double total; int xtotal; int i, x, y; double dx, dy; map::reverse_iterator iter, iter2; double miny; double b2, a, b, a2; cin >> xtotal; for (i = 0; i < xtotal; i++) { cin >> x >> y; scape[x] = y; } miny = 0; total = 0; for (iter = scape.rbegin(); iter != scape.rend(); iter++) { if (iter->second <= miny) { continue; } iter2 = iter; iter2--; dy = iter->second - miny; a = iter->second - iter2->second; b = iter2->first - iter->first; a2 = miny - iter2->second; b2 = (a2 * b) / a; dx = b - b2; total += sqrt((dx * dx + dy * dy)); miny = iter->second; } printf("%0.2lf\n", total); return 0; }