Đường gấp khúc


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 977M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Hình học giải tích là môn học thú vị đối với Toto. Hôm nay Toto được thầy giáo giao cho bài tập cho n điểm trên mặt phẳng có tọa độ lần lượt là \(A_1(x_1,y_1), A_2(x_2,y_2), ... A_n(x_n,y_n)\) và cho 2 chỉ số u và v \((1<=u<v<=n)\) hãy tìm độ dài đường gấp khúc đi qua các điểm trên mặt phẳng \(A_u -> A_{u+1} -> ... -> A_v \). Mặc dù cố gắng nhưng số lượng điểm quá nhiều khiến Toto bối rối, bạn hãy giúp Toto lập trình giải bài toán này nhé

Input

Dòng đầu tiên là số điểm trên mặt phẳng \((1<= n <= 2*10^5)\)

Tiếp theo n dòng mỗi dòng chứa hai số thực có trị tuyệt đối nhỏ hơn \(10^4\) là tương ứng là tọa độ của n điểm

Dòng tiếp theo là số nguyên dương m là số đường gấp khúc phải tính độ dài \((1<= m <=10^5)\)

Tiếp theo là m dòng mỗi dòng có hai chỉ số \(u, v\) là điểm đầu và điểm cuối của đường gấp khúc cần tính \((1<=u<v<=n)\)

Ouput

Gồm m số thực tương ứng với độ dài m đường gấp khúc cần tính mỗi số thực được lấy chính xác 3 chữ số sau dấu chấm thập phân và mỗi số in trên một dòng

Ví dụ

enter image description here

Input

6
0 0
5 0
5 4
9 8
9 -2 
13 -2
4
1 3
2 5
1 6
4 6

Output

9.000
19.657
28.657
14.000
tichpx

Comments

There are no comments at the moment.