| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 23 | 10 | 9 | 45.000% |
이 문제는 투 스텝 문제로, 각 테스트 케이스마다 프로그램이 총 두 번 실행된다. 이에 대한 자세한 정보는 채점 방법 문단을 참조하라.
영우와 정후는 은행의 금고를 털어 돈을 버는 금고 털이이다. 오늘은 총 $T$ 개의 은행의 금고를 털려고 한다. 한 금고를 털 때에는 먼저 정후가 은행 시스템에 침입해 10ドル^{18}$ 이하의 정수인 금고의 비밀번호를 알아내고, 이것을 TTS(Tree Transmission System)를 이용하여 영우에게 전달한다. 영우가 모든 은행의 올바른 비밀번호를 알아내고 금고를 무사히 턴다면 두 사람은 행복하게 성과급 파티를 즐기고, 그렇지 않다면 은행의 엄격한 보안 시스템에 의해 체포되어 철창 신세가 된다. 이렇게 중요한 작전을 실행에 옮기기 전, 두 사람은 비밀리에 다음과 같은 작전 회의를 했다.
영우와 정후의 역할을 수행하여, 무사히 금고를 털고 성과급 파티를 즐기자.
하나의 테스트 케이스에 대하여 당신의 프로그램은 총 두 번 실행된다. 첫 번째 실행에서, 당신의 프로그램은 정후의 역할을 수행해야 한다. 두 번째 실행에서, 당신의 프로그램은 영우의 역할을 수행해야 한다. 두 번째 실행의 입력은 첫 번째 실행에서 당신의 프로그램이 출력한 결과를 바탕으로 만들어진다.
매 출력마다 출력 버퍼를 비울 필요는 없다.
첫 번째 실행은 정후의 역할을 수행한다.
총 $T$개의 트리를 다음과 같은 형식으로 출력한다. $i$번째로 출력해야 하는 트리는 $i$번째로 입력된 비밀번호를 통해 생성된 트리여야 한다.
두 번째 실행은 영우의 역할을 수행한다.
총 $T$개의 비밀번호를 $T$개의 줄에 걸쳐 출력한다. $i$번째 줄에 출력하는 비밀번호는 첫 번째 실행에서 $i$번째로 입력된 비밀번호와 같아야 한다.
0 2 2023 1226
7 1 2 2 3 1 4 4 5 5 6 5 7 3 1 2 2 3
첫 번째로 입력된 정수가 0이므로 당신의 프로그램은 이 입력에 대해서 정후의 역할을 수행해야 한다. 총 두 개의 은행을 턴다.
첫 번째 은행 금고의 비밀번호는 2023이다. 이 라운드에서 당신은 7개의 정점으로 이루어진 트리를 출력했다.
두 번째 은행 금고의 비밀번호는 1226이다. 이 라운드에서 당신은 3개의 정점으로 이루어진 트리를 출력했다.
1 2 5 1 2 1 3 5 3 3 4 3 3 2 1 2
2023 1226
이 입력은 첫 번째 예제에서의 출력 결과를 바탕으로 생성된 입력이다.
첫 번째로 입력된 정수가 1이므로 당신의 프로그램은 이 입력에 대해서 영우의 역할을 수행해야 한다. 총 두 개의 은행을 턴다.
첫 번째 은행의 경우, 정후가 트리를 만든 이후 TTS는 1, 2번 정점을 잇는 간선을 제거했다. 이로 인해 트리는 $\{ 1, 4, 5, 6, 7\},ドル $\{ 2, 3\}$의 연결 요소들로 분리되었고, 이 중 크기가 더 큰 연결 요소인 $\{ 1, 4, 5, 6, 7\}$이 남고 다른 모든 연결 요소들은 제거되었다. 이후 TTS는 1, 4, 5, 6, 7번 정점에 각각 2, 1, 3, 4, 5라는 새로운 번호를 붙이고, 간선 집합의 순서도 섞었다.
두 번째 은행의 경우, 트리에서 간선이 제거되지 않았으나 간선의 순서가 재배열되었다.
위의 예제의 입출력은 실제 정해와 전혀 관련이 없으며, 단지 이해를 돕기 위해 만든 예시임에 유의하라.
School > 경기과학고등학교 > 나는코더다 2023 송년대회 G번