여러 개의 카드 더미가 주어질 때, 같은 무늬 카드 제거와 빈 더미로의 이동을 반복해 모든 더미를 한 장 이하로 만들 수 있는지 판정한다.
어려움8그래프위상 정렬그리디시뮬레이션아직 제출이 없습니다시간 제한20초메모리 제한512 MB앞면이 보이게 쌓인 카드 더미 N개로 혼자 하는 카드 게임을 한다. 각 더미에는 처음에 카드가 정확히 C장씩 있다. 카드마다 숫자와 무늬가 있으며, 숫자와 무늬가 모두 같은 카드는 게임 안에 둘 이상 없다.
한 번의 이동으로 다음 중 하나를 할 수 있다.
이동을 적절히 이어서 모든 더미에 카드가 한 장 이하만 남게 하면 이긴다. 처음 배치가 주어질 때, 이길 수 있는지 판정한다.
첫째 줄에 테스트 케이스가 사용하는, 미리 만들어 둔 더미의 개수 P가 주어진다. 다음 P개 줄에는 미리 만들어 둔 더미가 한 줄에 하나씩 주어진다. 그중 i번째 줄은 i번째 더미의 카드 장수 Ci로 시작하고, 이어서 정수 쌍이 Ci개 주어진다. j번째 쌍 Vij와 Sij는 그 더미의 위에서 j번째 카드의 숫자와 무늬이다.
다음 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄이다. 첫째 줄에는 더미의 개수 N과 한 더미의 카드 장수 C가 주어진다. 둘째 줄에는 판을 이루는 더미의 번호 Pi가 N개 주어지고, 번호는 0부터 센다.
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 이길 수 있으면 POSSIBLE, 이길 수 없으면 IMPOSSIBLE이다.
예제의 첫 테스트 케이스에는 카드가 두 장씩인 더미가 둘 있다. 첫 더미는 위에 무늬 2의 7, 그 아래에 무늬 1의 7이 있다. 둘째 더미는 위에 무늬 2의 3, 그 아래에 무늬 2의 6이 있다. 이기는 방법 하나는 이렇다. 무늬 2의 3을 없애고, 무늬 2의 6을 없애면 둘째 더미가 빈다. 그 빈 더미로 무늬 2의 7을 옮기면 모든 더미에 카드가 한 장 이하만 남는다.
예제의 둘째 테스트 케이스에는 카드가 두 장씩인 더미가 셋 있다. 할 수 있는 이동은 무늬 4의 5를 없애는 것뿐이고, 그 뒤에 새로 열리는 이동은 없다.