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

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

압수르디스탄의 도로 3

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

요약
각 도시는 연결된 도로 중 하나를 맡으며 모든 도로가 정확히 한 번 배정되고 이웃 번호 나열이 사전 순으로 가장 작아집니다.
난이도

보통10점 중 6점

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

문제

압수르디스탄 사람들은 작년에야 도로 놓는 법을 알아냈다. 그 뒤로 각 도시는 자기 도시와 다른 도시 하나를 잇는 도로를 하나씩 놓았다. 새로 놓인 도로는 양쪽 방향으로 모두 다닐 수 있다.

당신이 산 여행 안내서에는 새로 놓인 도로가 전부 표시된 지도가 실려 있다. 지도에는 도로만 그려져 있고, 어느 도시가 어느 도로를 놓았는지는 적혀 있지 않다. 역사에 관심이 많은 당신은 이 대응 관계를 알아내려고 한다.

도로 nn개의 정보가 주어질 때, 각 도시가 도로를 정확히 하나씩 놓은 것이 되도록 도로를 도시에 배정하라. 그런 배정은 적어도 하나 존재한다.

입력

첫째 줄에 도시의 수이자 도로의 수인 정수 nn이 주어진다. (2≤n≤1000002 \le n \le 100000)

다음 nn개 줄에는 도로 하나의 정보가 두 정수 aa, bb로 주어진다. 도시 aa와 도시 bb를 잇는 도로가 있다는 뜻이다. (1≤a,b≤n1 \le a, b \le n, a≠ba \ne b)

같은 두 도시를 잇는 도로가 여러 개 있을 수도 있다.

출력

nn개 줄을 출력한다. ii번째 줄에는 도시 ii가 놓은 도로를 정수 두 개 ii와 bb로 출력한다. bb는 그 도로의 반대쪽 끝 도시이다. 입력에 주어진 각 도로는 출력에 정확히 한 번씩 나타나야 한다.

배정이 여러 가지이면 수열 b1,b2,…,bnb_1, b_2, \dots, b_n이 사전순으로 가장 앞서는 배정 하나만 출력한다.

예제3

  1. 예제 1

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

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

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