선인장 접기
시간 제한3초메모리 제한1024 MB
각 간선 (u, v, l)의 두 끝 좌표 차이가 l이 되도록 정점에 1차원 좌표를 줄 수 있는지 판별합니다.
문제
선인장 그래프란 모든 간선이 최대 하나의 단순 사이클에만 포함된 무향 그래프를 말합니다. 흐즈로는 선인장 그래프를 하나 가지고 있으며, 각 간선에는 길이가 있습니다. 두 정점 , 를 연결하며 길이가 인 간선은 로 표기합니다. 흐즈로는 자신의 그래프를 보다가 이런 생각을 하게 되었습니다.
- 어떤 선인장 그래프는 적당히 접어서 1차원으로 만들 수도 있지 않을까?
이 의문을 풀기 전에, 다음 성질을 만족하는 그래프를 1차원으로 접을 수 있다고 정의합니다.
- 각 정점 에 1차원 좌표 를 배정하여, 각 간선 에 대해 이 성립하도록 할 수 있다.
주어진 선인장 그래프를 1차원으로 접을 수 있는지 판단하세요.
입력
첫 번째 줄에 정점의 개수 과 간선의 개수 이 공백으로 구분되어 주어집니다. (, )
두 번째 줄부터 개의 줄에 간선 정보가 한 줄에 하나씩 주어집니다. 번째 줄에는 번째 간선이 연결하는 두 정점 , 와 간선의 길이 가 공백으로 구분되어 주어집니다. (, , )
중복 간선이나 자기 자신을 향하는 간선은 없으며, 선인장 그래프임이 보장됩니다.
출력
그래프를 1차원으로 접을 수 있으면 YES를, 그렇지 않으면 NO를 한 줄에 출력하세요.
힌트
이 문제에서 정의하는 선인장 그래프는 연결 그래프가 아닐 수 있으니 주의하세요.