만드는 중입니다

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

하나뿐인 보행

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

요약
무방향 그래프의 간선에 방향을 정해 S에서 E로 가는 walk가 정확히 하나가 되게 합니다. 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

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

문제

무방향 단순 그래프 GG가 주어진다. GG의 모든 간선에 방향을 부여하여, 정점 SS에서 다른 정점 EE까지의 보행이 하나뿐이 되도록 하여라. 보행이란 같은 정점과 간선을 여러 번 지나갈 수 있는 경로를 뜻한다.

입력

첫째 줄에 정점의 개수 NN, 간선의 개수 MM, 시작점 SS, 도착점 EE가 공백으로 구분되어 주어진다. (2≤N≤200 0002 \leq N \leq 200\ 000; 1≤M≤300 0001 \leq M \leq 300\ 000; 1≤S,E≤N1 \leq S, E \leq N; S≠ES \neq E)

둘째 줄부터 MM개의 줄에 간선으로 연결된 두 정점의 번호 uu, vv가 공백으로 구분되어 주어진다. (1≤u,v≤N1 \leq u, v \leq N)

출력

간선의 방향을 어떻게 정하더라도 SS에서 EE까지의 보행을 하나뿐이게 만들 수 없다면 -1을 출력한다. 그렇지 않다면 입력된 순서대로 각 간선의 방향을 한 줄에 출력한다. u→vu \rightarrow v로 방향을 부여했다면 0, 반대라면 1을 출력한다. 조건을 만족하는 출력이 여러 가지인 경우 그중 아무거나 출력한다.

예제2

  1. 예제 1

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

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