시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB127758.333%

문제

하이바이는 최근 $K$분 그래프에 대해 배웠다. $K$분 그래프가 무엇인지 모른다면, 아래 정의를 참고하자.

양의 정수 $K$에 대해 $K$분 그래프란 다음 조건을 만족하는 가중치 있는 방향 그래프 $G=(V,E)$이다.

  • 그래프의 모든 닫힌 보행 $P$에 대해, $P$의 간선 가중치 합이 항상 $K$의 배수이다. 여기서 닫힌 보행이란 시작점과 끝점이 같으며, 같은 정점이나 간선을 여러 번 방문할 수 있는 경로를 말한다.

마침 출제할 만한 문제가 없었던 하이바이는 주어진 그래프가 $K$분 그래프인지 판별하는 문제를 내기로 했다.

입력

첫째 줄에는 그래프 $G$의 정점 개수 $N$, 간선 개수 $M$, 문제에서 설명한 양의 정수 $K$가 공백으로 구분되어 주어진다. $(1\le N\le 300\, 000;$ $0\le M\le 500\, 000;$ $1\le K\le 10^9)$

둘째 줄부터 $M$개의 줄에 걸쳐 $i+1$번째 줄에는 $3$개의 정수 $v_i$, $w_i$, $x_i$가 공백으로 구분되어 주어진다. 이는 $v_i$번 정점을 시작점으로 하고 $w_i$번 정점을 끝점으로 하는 가중치가 $x_i$인 간선을 의미한다. $(1\le v_i,w_i\le N;$ $0\le x_i\le 10^9)$

출력

첫째 줄에는 주어진 그래프가 $K$분 그래프라면 Yes를, 아니면 No를 출력한다.

예제 입력 1

3 3 6
1 2 3
2 3 6
3 1 9

예제 출력 1

Yes

예제 입력 2

4 4 10
1 2 2
2 3 1
3 1 4
4 1 3

예제 출력 2

No
W3sicHJvYmxlbV9pZCI6IjM1NDg4IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiW0tdICRLJFx1YmQ4NCBcdWFkZjhcdWI3OThcdWQ1MDQgMiIsImRlc2NyaXB0aW9uIjoiPHA+XHVkNTU4XHVjNzc0XHViYzE0XHVjNzc0XHViMjk0IFx1Y2Q1Y1x1YWRmYyAkSyRcdWJkODQgXHVhZGY4XHViNzk4XHVkNTA0XHVjNWQwIFx1YjMwMFx1ZDU3NCBcdWJjMzBcdWM2ZTBcdWIyZTQuICRLJFx1YmQ4NCBcdWFkZjhcdWI3OThcdWQ1MDRcdWFjMDAgXHViYjM0XHVjNWM3XHVjNzc4XHVjOWMwIFx1YmFhOFx1Yjk3OFx1YjJlNFx1YmE3NCwgXHVjNTQ0XHViNzk4IFx1YzgxNVx1Yzc1OFx1Yjk3YyBcdWNjMzhcdWFjZTBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjxwPlx1YzU5MVx1Yzc1OCBcdWM4MTVcdWMyMTggJEskXHVjNWQwIFx1YjMwMFx1ZDU3NCA8c3Ryb25nPiRLJFx1YmQ4NCBcdWFkZjhcdWI3OThcdWQ1MDQ8XC9zdHJvbmc+XHViNzgwIFx1YjJlNFx1Yzc0YyBcdWM4NzBcdWFjNzRcdWM3NDQgXHViOWNjXHVjODcxXHVkNTU4XHViMjk0IFx1YWMwMFx1YzkxMVx1Y2U1OCBcdWM3ODhcdWIyOTQgXHViYzI5XHVkNWE1IFx1YWRmOFx1Yjc5OFx1ZDUwNCAkRz0oVixFKSRcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuPGxpPlx1YWRmOFx1Yjc5OFx1ZDUwNFx1Yzc1OCBcdWJhYThcdWI0ZTAgXHViMmViXHVkNzhjIFx1YmNmNFx1ZDU4OSAkUCRcdWM1ZDAgXHViMzAwXHVkNTc0LCAkUCRcdWM3NTggXHVhYzA0XHVjMTIwIFx1YWMwMFx1YzkxMVx1Y2U1OCBcdWQ1NjlcdWM3NzQgXHVkNTZkXHVjMGMxICRLJFx1Yzc1OCBcdWJjMzBcdWMyMThcdWM3NzRcdWIyZTQuIFx1YzVlY1x1YWUzMFx1YzExYyBcdWIyZWJcdWQ3OGMgXHViY2Y0XHVkNTg5XHVjNzc0XHViNzgwIFx1YzJkY1x1Yzc5MVx1YzgxMFx1YWNmYyBcdWIwNWRcdWM4MTBcdWM3NzQgXHVhYzE5XHVjNzNjXHViYTcwLCBcdWFjMTlcdWM3NDAgXHVjODE1XHVjODEwXHVjNzc0XHViMDk4IFx1YWMwNFx1YzEyMFx1Yzc0NCBcdWM1ZWNcdWI3ZWMgXHViYzg4IFx1YmMyOVx1YmIzOFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YWNiZFx1Yjg1Y1x1Yjk3YyBcdWI5ZDBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHViOWM4XHVjZTY4IFx1Y2Q5Y1x1YzgxY1x1ZDU2MCBcdWI5Y2NcdWQ1NWMgXHViYjM4XHVjODFjXHVhYzAwIFx1YzVjNlx1YzVjOFx1YjM1OCBcdWQ1NThcdWM3NzRcdWJjMTRcdWM3NzRcdWIyOTQgXHVjOGZjXHVjNWI0XHVjOWM0IFx1YWRmOFx1Yjc5OFx1ZDUwNFx1YWMwMCAkSyRcdWJkODQgXHVhZGY4XHViNzk4XHVkNTA0XHVjNzc4XHVjOWMwIFx1ZDMxMFx1YmNjNFx1ZDU1OFx1YjI5NCBcdWJiMzhcdWM4MWNcdWI5N2MgXHViMGI0XHVhZTMwXHViODVjIFx1ZDU4OFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVhZGY4XHViNzk4XHVkNTA0ICRHJFx1Yzc1OCBcdWM4MTVcdWM4MTAgXHVhYzFjXHVjMjE4ICROJCwgXHVhYzA0XHVjMTIwIFx1YWMxY1x1YzIxOCAkTSQsIFx1YmIzOFx1YzgxY1x1YzVkMFx1YzExYyBcdWMxMjRcdWJhODVcdWQ1NWMgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCAkSyRcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICQoMVxcbGUgTlxcbGUgMzAwXFwsIDAwMDskICQwXFxsZSBNXFxsZSA1MDBcXCwgMDAwOyQgJDFcXGxlIEtcXGxlIDEwXjkpJDxcL3A+XHJcblxyXG48cD5cdWI0NThcdWM5ZjggXHVjOTA0XHViZDgwXHVkMTMwICRNJFx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjY2QwICRpKzEkXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCAkMyRcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4ICR2X2kkLCAkd19pJCwgJHhfaSRcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc3NFx1YjI5NCAkdl9pJFx1YmM4OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVjMmRjXHVjNzkxXHVjODEwXHVjNzNjXHViODVjIFx1ZDU1OFx1YWNlMCAkd19pJFx1YmM4OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHViMDVkXHVjODEwXHVjNzNjXHViODVjIFx1ZDU1OFx1YjI5NCBcdWFjMDBcdWM5MTFcdWNlNThcdWFjMDAgJHhfaSRcdWM3NzggXHVhYzA0XHVjMTIwXHVjNzQ0IFx1Yzc1OFx1YmJmOFx1ZDU1Y1x1YjJlNC4gJCgxXFxsZSB2X2ksd19pXFxsZSBOOyQgJDBcXGxlIHhfaVxcbGUgMTBeOSkkPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVhZGY4XHViNzk4XHVkNTA0XHVhYzAwICRLJFx1YmQ4NCBcdWFkZjhcdWI3OThcdWQ1MDRcdWI3N2NcdWJhNzQgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPlllczxcL2NvZGU+PFwvc3Bhbj5cdWI5N2MsIFx1YzU0NFx1YjJjOFx1YmE3NCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+Tm88XC9jb2RlPjxcL3NwYW4+XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIzNTQ4OCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IltLXSAkSyQtbWludXRlIEdyYXBoIDIiLCJkZXNjcmlwdGlvbiI6IjxwPkhpYnllIGhhcyByZWNlbnRseSBsZWFybmVkIGFib3V0ICRLJC1taW51dGUgZ3JhcGhzLiBSZWZlciB0byB0aGUgZGVmaW5pdGlvbiBiZWxvdyBmb3Igd2hhdCBhICRLJC1taW51dGUgZ3JhcGggaXMuPFwvcD5cclxuXHJcbjxwPkEgPHN0cm9uZz4kSyQtbWludXRlIGdyYXBoIDxcL3N0cm9uZz5pcyBhIHdlaWdodGVkIGRpcmVjdGVkIGdyYXBoICRHPShWLEUpJCB3aGljaCBzdWl0cyB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbi48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Gb3IgYW55IGNsb3NlZCB3YWxrICRQJCBvbiB0aGUgZ3JhcGgsIHRoZSBzdW0gb2YgZWRnZSB3ZWlnaHRzIGlzIGFsd2F5cyBhIG11bHRpcGxlIG9mICRLJC4gQSBjbG9zZWQgd2FsayBpcyBhIHBhdGgsIHN0YXJ0aW5nIGFuZCBlbmRpbmcgYXQgdGhlIHNhbWUgdmVydGV4LCB3aGljaCBtYXkgaGF2ZSByZXBlYXRlZCB2ZXJ0aWNlcyBhbmQgZWRnZXMuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+T3V0IG9mIHByb2JsZW1zIHRvIHNldCwgaGlieWUgaGFzIGRlY2lkZWQgdG8gbWFrZSBhIHByb2JsZW0gYWJvdXQgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGdyYXBoIGlzIGEgJEskLW1pbnV0ZSBncmFwaC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIG9mIGlucHV0IGNvbnRhaW5zICROJCwgZGVub3RpbmcgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBpbiAkRyQsICRNJCwgZGVub3RpbmcgdGhlIG51bWJlciBvZiBlZGdlcyBpbiAkRyQsIGFuZCAkSyQgd2hpY2ggaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyIGFzIGV4cGxhaW5lZCBpbiB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQuICQoMVxcbGUgTlxcbGUgMzAwXFwsIDAwMDskICQwXFxsZSBNXFxsZSA1MDBcXCwgMDAwOyQgJDFcXGxlIEtcXGxlIDEwXjkpJDxcL3A+XHJcblxyXG48cD5UaGUgJGkkLXRoIG9mIHRoZSBmb2xsb3dpbmcgJE0kIGxpbmVzIGNvbnRhaW5zIHRocmVlIHNwYWNlLXNlcGFyYXRlZCBpbnRlZ2VycyAkdl9pJCwgJHdfaSQsIGFuZCAkeF9pJC4gVGhpcyBkZW5vdGVzIHRoYXQgdGhlcmUgaXMgYW4gZWRnZSB3aXRoIHdlaWdodCAkeF9pJCB3aGljaCBzdGFydHMgYXQgdmVydGV4ICR2X2kkLCBhbmQgZW5kcyBhdCB2ZXJ0ZXggJHdfaSQuICQoMVxcbGUgdl9pLHdfaVxcbGUgTjskICQwXFxsZSB4X2lcXGxlIDEwXjkpJDxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPklmIHRoZSBnaXZlbiBncmFwaCBpcyBhICRLJC1taW51dGUgZ3JhcGgsIHByaW50IDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5ZZXM8XC9jb2RlPjxcL3NwYW4+IGluIHRoZSBmaXJzdCBsaW5lLiBPdGhlcndpc2UsIHByaW50IDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5ObzxcL2NvZGU+PFwvc3Bhbj4uPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==

출처