luogu#P9834. [USACO05OPEN] Around the world G

[USACO05OPEN] Around the world G

题目描述

这些年,农夫约翰在国际上交了一大批开农场的朋友。由于他有一段时间没有去见过英国的农夫泰德和荷兰的农夫波尔,所以他想去拜访他们。

他知道每个朋友的农场的经度(是一个从 00359359 的整数,我们把地球看成一个圆,经度在此圆上顺时针方向递增)。

农夫约翰打算乘飞机去拜访他的 nn 个朋友(用 11nn 来表示)。他知道在这些农场之间有 mm 条双向的航线。飞机是沿着地面上最短的路径飞行的(就是圆上的最短弧长)。两个农场之间的航线一定是最短的。

保证如果有两个农场在直径两端,那么它们之间一定不会被某条航线直接连接。

所以任何一次航行都可以被描述成顺时针或是逆时针的.比如说,经度 3030 到经度 3535 是顺时针的,经度 350350 到经度 1010 也是顺时针的,而经度 350350 到经度 200200 是逆时针的。

农夫约翰为了耍酷,决定要经过几个朋友的农场做到环球旅行,他想知道这是否可能,如果可能最少要乘几次飞机。

他想在他最好的朋友(即输入中的第一个)的农场上开始和结束这次旅行。为了保证这是一次环球航行,结束旅行,顺时针经过的路程不能等于逆时针经过的路程。

输入格式

第一行两个用空格隔开的整数 nnmm

第二到 n+1n+1 行:第 i+1i+1 行有一个整数,表示第 ii 个农场的经度。第二行是他的最好的朋友的地址。

n+2n+2 过程 n+m+1n+m+1 行:第 i+n+1i+n+1 行有两个整数,表示这两个农场之间有航线。

输出格式

一个整数,表示农夫约翰至少要乘几次飞机才能完成环球旅行。每次农夫约翰从一个农场前往另一个农场算作乘一次飞机。如果不可能做到环球旅行则输出 -1

3 3
0
120
240
1 2
2 3
1 3

3

提示

对于 100%100\% 的数据,1n5×1031 \leq n \leq 5 \times 10^31m2.5×1041 \leq m \leq 2.5 \times 10^4