A safe way

Time Limit: 3000ms
Memory Limit: Unknown KB
This problem will be judged on PKU. Original ID: 2966
64-bit integer IO format: %lld      Java class name: Main
Special Judge

Description

There is a map of a minefield. The border of the minefield is a polygon which has not got self-intersections or self-contacts. There are two points A and B outside of this minefield or on its border. You need to find the minimum length way from A to B. Obviously the way can not cross the minefield. However, it may contact edges or vertices of the bounding polygon.

Input

The input consists of several lines. The first line contains four numbers XA, YA, XB and YB – the coordinates of two given points. The second line contains integer number N, 3 ≤ N ≤ 100 – the number of vertices of the bounding polygon. Finally, each of the next N lines contains a coordinates X and Y of one polygon vertex, in the counterclockwise order. All the coordinates are integer numbers between −100000 and 100000. The numbers are separated by one or more spaces.

Output

The output consists of one line containing the length of a shortest safe way, with the accuracy 0.0001.

Sample Input

0 0 5 5
4
1 0
3 0
3 2
1 2

Sample Output

7.2361

Source

Language: 
Theme: 
Share Code? 

Powered by NB231 | Current Style: .