하노이 여행하기

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

요약
N개 건물에 대한 함수 A와 시작점 a, b를 정해, 여러 번의 이동에서 종이에 적히는 서로 다른 순서쌍의 개수가 최대가 되도록 한다.
난이도

보통10점 중 7점

유형
그래프, 시뮬레이션, 수학
정답자
아직 제출이 없습니다

문제

준혁이와 도훈은 하노이 도시를 걸으며 여행하고 있다. 하노이는 NN개의 건물이 있으며 11부터 NN까지 번호가 붙어있다.

준혁이는 건물 aa에서, 도훈은 건물 bb에서 여행을 시작하여 여행에서 다음과 같은 행동을 1099910^{999}번 반복한다:

  • 준혁이가 있는 건물을 xx, 도훈이 있는 건물을 yy라고 하자. 순서쌍 (x,y)(x,y)를 종이에 적는다.
  • 준혁이는 건물 A_xA\_x로, 도훈은 건물 A_yA\_y로 이동한다.

도훈은 소녀 팬들을 위해 여행을 한 이후 종이에 적은 서로 다른 순서쌍의 개수가 최대한 많아지도록 여행을 기획하고 싶다. 두 순서쌍은 첫 번째 원소 혹은 두 번째 원소가 다르다면 다르다.

종이에 적은 서로 다른 순서쌍의 개수를 최대화 하는 두 사람의 시작점 aa, bb와 각 건물의 다음 행선지 A_1,A_2,…,A_NA\_1, A\_2, \ldots, A\_N을 구하여라.

입력

첫째 줄에 테스트케이스의 개수 tt가 주어진다. (1≤t≤100)(1 \le t \le 100)

각 테스트케이스마다 한 줄에 건물의 개수 NN이 주어진다. (2≤N≤200,000)(2 \le N \le 200\\,000)

모든 테스트케이스의 NN의 합은 200,000200\\,000을 넘지 않는다.

출력

각 테스트 케이스마다 두 줄을 출력한다.

  • 첫째 줄에 A_1,A_2,…,A_NA\_1, A\_2, \ldots, A\_N을 공백으로 구분하여 출력한다.
  • 둘째 줄에 준혁이의 시작 건물 aa와 도훈의 시작 건물 bb를 공백으로 구분하여 출력한다.

예제1

  1. 예제 1

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