V
시간 제한2초메모리 제한1024 MB
정점에 정수가 적힌 그래프에서 정점 하나와 이웃 두 개를 골라 두 이웃에 같은 k를 더하는 연산을 반복해 모든 값을 같게 만들 수 있는지 판정합니다.
문제
개의 정점과 개의 간선으로 이루어진 그래프가 있습니다. 번 정점에는 정수 가 적혀 있습니다. 이 그래프에 다음과 같은 연산을 원하는 만큼 적용할 수 있습니다.
- 정점 를 선택하고, 와 간선으로 직접 연결된 서로 다른 두 정점 , 를 선택합니다. 정수 를 정하여 를 로, 를 로 바꿉니다.
만약 그래프에서 위 조건에 따라 정점 , , 를 선택할 수 없다면, 그 그래프에는 연산을 적용할 수 없습니다.
주어진 연산을 번 이상 원하는 만큼 적용해서 모든 정점에 똑같은 수가 적히도록 만들 수 있는지 판정하세요.
입력
첫 번째 줄에 정점의 개수 과 간선의 개수 이 주어집니다. (, )
두 번째 줄에 개의 정수가 공백으로 구분되어 주어집니다. 번째 수는 번 정점에 처음 적힌 정수 입니다. ()
다음 개의 줄에 걸쳐 그래프의 간선의 정보가 주어집니다. 각 줄에는 간선의 양 끝점을 나타내는 두 정수 , 가 주어집니다. (, )
간선의 양 끝점이 같은 경우는 없으며, 두 정점을 연결하는 간선은 최대 한 번 주어집니다. 입력으로 주어지는 그래프는 연결 그래프가 아닐 수 있습니다.
출력
모든 정점에 똑같은 수가 적히도록 할 수 있으면 YES, 아니라면 NO를 첫 번째 줄에 출력합니다.