이벤추얼 저니
시간 제한1초메모리 제한256 MB
정점이 0 또는 1로 색칠된 연결 그래프에서 같은 색 안의 이동은 무료이고 간선 하나를 지날 때마다 표 한 장이 필요하다. 각 정점에서 다른 모든 정점까지의 최소 표 장수의 합을 구한다.
문제
LCR은 정말 대단한 존재이다.
그렇게 생각하며 비행기에 앉아 바다를 바라보는 Rikka는 환상적인 여정을 만끽한다. 불은 결코 일어나지 않았다. 동료들과 이 여정을 나누는 것도 흥미로울 테고, 또 다른 여행도 매력적이다.
하지만 무엇보다도 집이 최고다.
Rikka는 JR 노선을 이용해 여행한다. 총 개의 역이 있고, 그 사이에 개의 공용 양방향 철도 노선이 건설되어 있다. 각 역은 JR 서일본 또는 JR 동일본 중 하나에 속한다. JR 서일본과 JR 동일본은 각각 자신이 소유한 모든 역을 연결하는 전용 철도를 운영한다.
Rikka는 몇 장의 승차권과 두 종류의 특별 패스, 즉 JR 서일본용 ICOCA와 JR 동일본용 Suica를 가지고 있다. 그녀는 매번 승차권을 지불하고 다음 중 하나를 수행한다.
- 공용 철도 노선을 통해 한 종점에서 다른 종점으로 이동한다.
- 특별 패스 중 하나를 사용해 현재 역과 같은 소유주를 가진 임의의 역으로 이동한다. 패스는 여러 번 사용할 수 있다.
Rikka는 각 출발 역에 대해, 다른 모든 역에 도달하기 위해 지불해야 하는 최소 승차권 수의 합을 알고 싶어 한다.
입력
첫 번째 줄에는 두 정수 가 주어지며, 이는 역의 수와 공용 철도의 수이다.
다음 줄에는 개의 정수 가 공백으로 구분되어 주어지며, 각 역의 소유주를 나타낸다. 이면 역 는 JR 서일본에 속하고, 그렇지 않으면 JR 동일본에 속한다.
다음 개의 줄에는 모든 공용 철도가 주어지며, 각 줄에는 두 정수 가 주어져 와 를 연결하는 양방향 철도를 나타낸다. 같은 두 역을 연결하는 공용 철도는 두 개 이상 존재하지 않으며, Rikka는 모든 역 쌍 사이를 이동할 수 있음이 보장된다. 전용 철도는 입력에 직접 주어지지 않으며, Rikka는 공용 철도만 이용하는 대신 패스를 사용해야 할 수도 있다.
출력
한 줄에 개의 정수를 공백으로 구분하여 출력한다. 번째 정수는 이며, 여기서 는 에서 로 이동하는 데 필요한 최소 승차권 수이다.