Дома в Берляндии | 프로그래밍의 벗 PivotOJ
PivotOJ

Дома в Берляндии

시간 제한: 2000ms메모리 제한: 1024MB출처: MOOI 2016-17 quallongBOJ 30749

문제

Как известно, в столице Берляндии есть nn перекрёстков. На некоторых их этих перекрёстков находятся жилые дома. Пусть aia_i --- это количество человек в семье, проживающей в доме, который находится на перекрёстке ii для всех 1in1 \leq i \leq n. Если aia_i равно нулю, будем считать, что на этом ii-м перекрёстке нет жилого дома.

Некоторые перекрёстки соединены дорогами. Всего в Берляндии mm дорог. По каждой дороге можно ходить в любом направлении. Каждая дорога соединяет два различных перекрёстка. Любые два перекрёстка соединены не более чем одной дорогой. От любого перекрёстка можно добраться по дорогам города до любого другого перекрёстка. Назовём расстоянием между перекрёстками ii и jj минимальное количество дорог, по которым нужно пройти, чтобы добраться от перекрёстка ii до перекрёстка jj.

Когда одна семья ходит в гости к другой семье, каждый человек находит себе ровно одного собеседника из другой семьи, и они вдвоем разговаривают между собой. Двум семьям общаться скучно, если какой-то человек останется без собеседника.

По какой-то непонятной причине правительство Берляндии попросило вас найти два ближайших жилых дома vv и uu, таких что если семья из дома vv придёт в гости к семье из дома uu, то им будет скучно общаться, то есть av>0a_v > 0, au>0a_u > 0, avaua_v \ne a_u и расстояние от vv до uu минимально. Гарантируется, что существуют два жилых дома с различным количеством жильцов.

입력

В первой строке входных данных заданы числа nn и mm (2n1000000,1m10000002 \leq n \leq 1\,000\,000, 1 \leq m \leq 1\,000\,000) --- количество перекрёстков в столице Берляндии и количество двунаправленных дорог соответственно.

Во второй строке входных данных заданы nn чисел (0ai1090 \leq a_i \leq 10^9), где aia_i равно 00, если на ii-м перекрёстке нет жилого дома, или aia_i равно количеству человек в семье, проживающей в доме, который находится на ii-м перекрёстке.

В следующих mm строках заданы дороги. В ii-й из этих строк заданы два числа viv_i и uiu_i (1vi,uin,viui1 \leq v_i, u_i \leq n, v_i \ne u_i) --- номера перекрёстков, соединённых соответствующей дорогой.

출력

В единственной строке выведите одно целое число --- минимальное расстояние между двумя жилыми домами с различным количеством жильцов.

힌트

В первом примере населены только два дома --- у перекрёстков 11 и 33 и количество жильцов в них разное. Расстояние между домами равно 22, кратчайший путь использует дороги 11 и 22.

예제

예제 1

입력
4 4
1 0 2 0
1 2
2 3
3 4
4 1
출력
2

예제 2

입력
5 4
1 0 2 1 0
1 5
4 5
5 2
2 3
출력
3
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.