항공 노선도
시간 제한2초메모리 제한1024 MB
정점이 최대 1000개인 단순 그래프를 정점 수가 최소인 그래프로 인코딩하여, 번호가 섞인 상태에서도 원래 노선도를 복원할 수 있도록 합니다.
문제
앨리스는 JOI 왕국에 살고 있다. 그녀는 IOI 공화국에 사는 밥을 초대하려고 한다. 초대하기 전에 JOI 왕국의 항공 노선도를 밥에게 보내고 싶어 한다.
JOI 왕국은 부터 까지 번호가 붙은 개의 섬으로 이루어진 섬나라이다. 항공 노선은 개 있다. 각 ()에 대해, 번째 노선은 섬 와 섬 를 양방향으로 잇는다. 같은 두 섬을 잇는 노선은 없다.
앨리스는 JOI 왕국이 운영하는 특수 전신기로 노선도를 보내야 한다. 이 기계는 무방향 그래프를 보낼 수 있다. 다만 전송 과정에서 정점 번호와 간선 번호가 무작위로 섞인다.
정확히 말하면 정보는 다음과 같이 전송된다. 앨리스가 보내는 그래프를 라 하고, 의 정점 수를 , 간선 수를 라 하자.
- 앨리스는 와 를 정한다. 정점에는 을, 간선에는 을 번호로 붙인다.
- 앨리스는 매개변수 과 을 정한다. 번째 간선은 정점 와 정점 를 잇는다.
- JOI 왕국이 정점 번호를 섞는다. 의 순열 을 만든 뒤, 모든 에 대해 를 로, 를 로 바꾼다.
- JOI 왕국이 간선 번호를 섞는다. 의 순열 을 만든 뒤, 새 가 옛 , 새 가 옛 가 되도록 재배열한다.
- 밥은 , 와 최종 , 값을 받는다.
이 기계로는 단순 그래프만 보낼 수 있다. 이면 는 와 달라야 하고, 는 와도 달라야 한다. 모든 에 대해 이어야 한다.
앨리스는 정점 수가 가장 적은 그래프로 노선도를 보내려고 한다.
두 프로그램을 작성해야 한다.
- , , 수열 , 가 주어지면, 첫 번째 프로그램은 앨리스가 보낼 그래프 의 정보를 출력한다.
- 밥이 받은 그래프 의 정보가 주어지면, 두 번째 프로그램은 JOI 왕국의 항공 노선도를 복원한다.
입력
샘플 채점기는 표준 입력에서 다음 데이터를 읽는다.
- 첫 줄에는 공백으로 구분된 정수 과 이 있다. JOI 왕국에는 섬이 개, 항공 노선이 개 있다.
- 이어지는 줄은 노선도를 나타낸다. 그중 번째 줄에는 공백으로 구분된 정수 와 가 있다.
출력
프로그램이 오답으로 판정되면 샘플 채점기는 Wrong Answer [1] 형식으로 오답 유형을 출력하고 종료한다.
Alice 호출과 Bob 호출이 모두 오답으로 판정되지 않으면 채점기는 Accepted.를 출력한 뒤 의 값을 출력한다.
여러 유형의 오답에 해당하면 채점기는 그중 하나만 보고한다.
제한
- .
- .
- ().
- ().
- ().
- 이고 ().