In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Byteasar is the king of Byteotia, an island in The Ocean of Happiness. The island is a convex shape, and all the towns of Byteotia are located on the shore. One of these towns is Byteburg, the famous capital of Byteotia. Every pair of towns is connected by a road that goes along the line segment between the towns. Some roads that connect different pairs of towns intersect - there is a crossroad at each such intersection.
Bitratio, Byteasar's rival to the throne, had hatched a sordid plot. While Byteasar was travelling from the capital to an adjacent town, Bitratio's people seized Byteburg. Now Byteasar has to return to Byteburg as soon as possible in order to restore his rule. Unfortunately, some of the roads are controlled by Bitratio's guerrilla. Byteasar cannot risk the use of such roads, he can however cross them at the crossroads. Needless to say, he has to travel along the roads and hence turn only at the crossroads, for otherwise the journey would take far too long.
Byteasar's loyal servants have informed him which roads are safe. Byteasar believes your loyalty, and thus entrusts you with a task to find the shortest safe route from the town he is currently in to Byteburg.
In the first line of the standard input two integers and are given (, ), separated by a single space, that denote respectively: the number of towns and the number of roads controlled by Bitratio's guerrilla. Let us number the towns from to starting from Byteburg and moving clockwise along the shore. Bytesar is currently in the town no. . Each of the following lines holds a pair of integers and (), separated by a single space, that denote the town's no coordinates.
Each of the following lines contains a pair of integers and (). Such pair means that the road connecting the towns and is controlled by Bitratio's guerrilla. Every such pair is unique. You can assume that in every test data set Byteasar can get to Byteburg.
Your programme is to print out one floating point number to the standard output: the length of the shortest safe route leading from the town no. to Byteburg. The absolute difference between the number returned and the correct one has to be at most .
For the input data:
6 9 -12 -10 -11 6 -4 12 6 14 16 6 18 -2 3 4 1 5 2 6 2 3 4 5 3 5 1 3 3 6 1 6
the correct result is:
42.0000000000
The route that Byteasar should follow leaves town no. 6 in the direction of town no. 4, then turns to the road connecting towns no. 2 and 5, and finally goes along the road connecting Byteburg with the town no. 4.
Task author: Jakub Onufry Wojtaszczyk.