아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

친구 관계 그래프

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

요약
방향 그래프에서 X에서 Y로 간선을 따라 이동할 수 있는지 묻는 질의에 답을 출력합니다.
난이도

보통10점 중 6점

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

문제

두 사람의 친구 관계는 대개 서로 주고받지만, 언제나 그렇지는 않다.

사람 AA가 사람 BB를 신뢰하면 친구 관계 그래프 GG에 방향 간선 A→BA \to B가 있다. GG에 A→BA \to B는 있으면서 B→AB \to A는 없을 수도 있다.

사람 XX가 다른 사람 YY에게 비밀 메시지를 전하려 한다. 직접 전해도 되고, GG의 신뢰 관계를 차례로 거쳐 전해도 된다. 즉 XX에서 출발해 간선 방향을 따라가 YY에 닿을 수 있으면 메시지는 전달된다.

여러 가지 XX와 YY에 대한 질의가 QQ개 주어진다. 각 질의마다 메시지가 전달되는지 판정하라.

입력

입력은 두 부분으로 나뉜다. 앞부분은 친구 관계 그래프 GG이고 뒷부분은 질의이며, 두 부분은 보기 편하도록 빈 줄로 구분한다.

첫째 줄에 정수 VV와 EE가 주어진다. (1≤V≤20001 \le V \le 2000, 0≤E≤1000000 \le E \le 100000)

다음 EE개의 줄에는 각각 정수 AA와 BB가 주어진다. 이는 GG에 방향 간선 A→BA \to B가 있다는 뜻이다. 정점 번호는 00부터 V−1V-1까지이므로 0≤A,B<V0 \le A, B < V이다.

그다음 줄에 질의의 개수 QQ가 주어진다. (1≤Q≤2000001 \le Q \le 200000)

다음 QQ개의 줄에는 각각 정수 XX와 YY가 주어진다. (0≤X,Y<V0 \le X, Y < V) X=YX = Y인 질의도 들어올 수 있다.

출력

각 질의마다 한 줄씩 출력한다. XX가 보낸 메시지가 YY에게 전달되면 1을, 전달되지 않으면 0을 출력한다. X=YX = Y이면 1을 출력한다.

예제1

  1. 예제 1

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