만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

오고 가기

면접 대비

시간 제한2초메모리 제한512 MB

요약
일방통행과 양방향 도로가 섞인 도시에서 임의의 두 교차로 사이를 양쪽으로 오갈 수 있는지 판정한다.
난이도

보통10점 중 6점

유형
그래프, DFS, 유니온 파인드
정답자
아직 제출이 없습니다

문제

어떤 도시에 교차로가 NN개 있고, 교차로 사이는 일방통행 도로와 양방향 도로로 이어져 있다. 도로 상당수가 터널을 지나거나 고가로 놓여 있다.

이 도시의 도로망은 어떤 두 교차로 VV와 WW를 골라도 VV에서 WW로 갈 수 있고 WW에서 VV로도 돌아올 수 있어야 한다.

도시의 도로망 정보를 읽어 이 조건이 만족되는지 판정하는 프로그램을 작성하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 교차로의 수 NN과 도로의 수 MM이 공백 하나로 구분되어 주어진다(2≤N≤20002 \le N \le 2000, 2≤M≤N(N−1)/22 \le M \le N(N-1)/2). 이어지는 MM개의 줄에는 도로 하나의 정보가 정수 세 개 VV, WW, PP로 공백 하나씩 구분되어 주어진다. VV와 WW는 서로 다른 교차로 번호이고(1≤V,W≤N1 \le V, W \le N, V≠WV \ne W), PP는 1 또는 2이다. PP가 1이면 그 도로는 VV에서 WW로만 갈 수 있는 일방통행이다. PP가 2이면 그 도로는 VV와 WW를 양방향으로 잇는다. 같은 두 교차로를 잇는 도로가 두 개 이상 주어지는 경우는 없다.

마지막 테스트 케이스 다음 줄에는 공백으로 구분된 0 두 개만 주어진다. 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 정수 GG를 한 줄에 출력한다. 연결 조건이 만족되면 GG는 1이고, 그렇지 않으면 0이다.

예제4

  1. 예제 1

    입력
    4 5
    1 2 1
    1 3 2
    2 4 1
    3 4 1
    4 1 2
    3 2
    1 2 2
    1 3 2
    3 2
    1 2 2
    1 3 1
    4 2
    1 2 2
    3 4 2
    0 0
    
    예상 출력
    1
    1
    0
    0
    
  2. 예제 2

    입력
    3 3
    1 2 1
    2 3 1
    3 1 1
    0 0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3 3
    1 2 1
    2 3 1
    1 3 1
    0 0
    
    예상 출력
    0
    
  4. 예제 4

    입력
    6 6
    1 2 1
    2 3 1
    3 1 1
    4 5 1
    5 6 1
    6 4 1
    0 0
    
    예상 출력
    0