만드는 중입니다

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

맛집 탐방

시간 제한3초메모리 제한1024 MB

요약
방향 그래프의 N개 식당과 M개 도로에서 한 번의 경로로 모든 식당, 모든 도로, 또는 둘 다를 지날 수 있는지 각각 판단합니다.
난이도

보통10점 중 6점

유형
그래프, 위상 정렬, DFS
정답자
아직 제출이 없습니다

문제

은수는 맛집을 탐방하러 도시로 여행을 떠날 것이다. 도시에는 총 NN개의 맛집이 있다. 도시에는 맛집에서 다른 맛집으로 이동할 수 있는 일방통행 길이 MM개 있으며, 각 길의 중간에는 기념품 상점이 있다. 길의 출발지와 도착지가 같은 맛집일 수도 있고, 여러 길이 같은 두 맛집을 연결할 수도 있다. 은수는 어느 맛집에서든 여행을 시작할 수 있고, 길을 따라 맛집을 옮겨 다니다가 어느 맛집에서든 여행을 끝낼 수 있다. 시작한 곳과 끝낸 곳이 같을 필요는 없다. 도시는 은수가 사는 마을에서 멀리 떨어져 있으므로, 은수는 한 번의 여행에서 가능한 한 많은 맛집과 상점을 들르려 한다. 모든 맛집을 방문하거나 모든 기념품 상점을 방문하는 여행을 하면 다음 여행에서 할인 혜택을 받을 수 있다. 은수는 이런 여행이 가능한지 알고 싶어 한다. 우리가 할 일은 은수의 여행 계획을 돕는 것이다.

입력

첫 번째 줄에 맛집의 수 NN과 길의 수 MM이 공백으로 구분되어 주어진다(1≤N,M≤500 0001 \leq N, M \leq 500\,000). 두 번째 줄부터 MM줄에 걸쳐 각 줄에 두 정수 uu, vv가 공백으로 구분되어 주어지며, 이는 맛집 uu에서 맛집 vv로 가는 일방통행 길이 있다는 뜻이다(1≤u,v≤N1 \leq u, v \leq N).

출력

총 3개의 줄을 출력한다. 첫 번째 줄에는 은수가 NN개의 맛집을 모두 방문하는 여행 계획을 세울 수 있으면 1을, 그렇지 않으면 0을 출력한다. 두 번째 줄에는 은수가 MM개의 기념품 상점을 모두 방문하는 여행 계획을 세울 수 있으면 1을, 그렇지 않으면 0을 출력한다. 세 번째 줄에는 은수가 NN개의 맛집을 모두 방문하면서 MM개의 기념품 상점도 모두 방문하는 여행 계획을 세울 수 있으면 1을, 그렇지 않으면 0을 출력한다.

예제2

  1. 예제 1

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

    입력
    3 2
    1 3
    2 1
    
    예상 출력
    1
    1
    1