포럼
문제 ICPC00037

E. 미로 축소

설명

Jay는 다양한 놀이 기구와 볼거리가 있는 작은 축제장을 운영한다. 안타깝게도 요즘은 어려운 시기다. 최근의 롤러코스터 사고, 화장실 침수, 그리고 불행한 광대 사건으로 Jay의 축제장은 대중에게 나쁜 평판을 얻었다. 돈을 내는 손님이 줄고 수입이 감소하자, 사업을 유지하려면 비용을 줄여야 한다. 축제장의 가장 큰 볼거리 중 하나는 크고 헷갈리는 미로이다. 미로는 좁고 구불구불한 통로로 연결된 여러 원형 방으로 이루어져 있다. 방문객들은 그 안에서 길을 잃고 지도를 그려 보는 것을 좋아한다. Jay는 일부 방들이 사실상 서로 동일할 수도 있다는 것을 알게 되었다. 그렇다면 아무도 눈치채지 못하게 미로의 크기를 줄일 수 있다. 두 방 \(A\)\(B\)가 사실상 동일하다는 것은, (미로의 지도를 알고 있는 상태에서) 방 \(A\) 또는 \(B\) 중 한 곳에 떨어뜨려졌을 때 미로를 탐험하는 것만으로는 \(A\)에서 시작했는지 \(B\)에서 시작했는지 구별할 수 없다는 뜻이다. 통로 출구들은 각 방 둘레에 고르게 배치되어 있으며, 방에 표시를 하거나 무언가를 남길 수 없다(특히 이전에 방문한 방인지도 알 수 없다). 방을 식별할 수 있는 유일한 특징은 출구의 개수이다. 통로들도 서로 구별할 수 없을 만큼 구불구불하지만, 방에 들어설 때 어느 통로로 왔는지는 알 수 있으므로 방 둘레에 통로가 나타나는 순서를 이용해 어느 정도 길을 찾을 수 있다. Jay는 축제 미로 협회에 도움을 요청했다. 그게 바로 당신이다! 미로에서 사실상 동일한 방들의 집합을 모두 구하는 프로그램을 작성하시오.

제약
입력 형식

입력은 하나의 테스트 케이스로 이루어져 있다. 첫 줄에는 미로의 방 개수인 정수 \(n\) (\(1 \le n \le 100\))이 주어진다. 방은 1부터 \(n\)까지 번호가 매겨진다. 이어서 \(n\)개의 줄이 순서대로 각 방을 설명한다. 각 줄은 이 방에 통로가 \(k\)개 있음을 나타내는 정수 \(k\) (\(0 \le k < 100\))로 시작하고, 이어서 각 통로가 연결되는 방을 (임의의 시작점부터 시계 방향 순서로) 나열한 서로 다른 정수 \(k\)개가 온다. 자기 자신과 연결되는 방은 없다.

출력 형식

사실상 동일한 방들의 극대 집합마다(크기 1인 집합은 무시) 한 줄씩, 집합에 속한 방 번호를 증가하는 순서로 출력한다. 집합들은 가장 작은 방 번호 순으로 정렬한다. 그런 집합이 없으면 대신 none을 출력한다.

예제 1
입력
13
2 2 4
3 1 3 5
2 2 4
3 1 3 6
2 2 6
2 4 5
2 8 9
2 7 9
2 7 8
2 11 13
2 10 12
2 11 13
2 10 12
출력
2 4
5 6
7 8 9 10 11 12 13
예제 2
입력
6
3 3 4 5
0
1 1
1 1
2 1 6
1 5
출력
none
문제 정보

생성자가 기록되지 않았습니다.

출처 ICPC World Finals 2014

평가 및 의견

E. Maze Reduction

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

E. Maze Reduction

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8