도박 기계
시간 제한1초메모리 제한128 MB
각 발전기가 다른 발전기 집합으로 이어지는 구조에서 출력 순서를 적절히 정해 마지막 발전기에서 모든 집합이 소진된 채 멈추는 패배를 피할 수 있는지 판정한다. 즉, 패배가 아닌 정지가 가능한지 결정한다.
문제
도박 기계는 개의 정수 생성기 으로 이루어진다 (). 각 생성기 에는 고정된 집합 이 정해져 있다. 라 하면 집합은 비어 있을 수도 있고, 모든 의 합 은 을 넘지 않는다.
생성기가 활성화될 때마다 다음 규칙에 따라 정수 하나를 만들어 낸다.
- 가 처음 활성화되면 의 원소 하나를 만들어 낸다.
- 이후 활성화될 때마다 는 아직 만들어 내지 않은 의 원소를 하나 만들어 낸다. 각 생성기가 원소를 내보내는 순서는 마음대로 정할 수 있다.
- 의 모든 원소를 이미 만들어 냈다면 (특히 가 비어 있으면) 는 을 만들어 낸다.
기계는 항상 을 활성화하며 시작한다. 어떤 생성기가 양의 정수 을 만들어 내면 다음에는 이 활성화된다. 어떤 생성기가 을 만들어 내는 순간 기계는 멈춘다.
멈춤을 일으킨 을 마지막 생성기 이 만들어 냈고, 그 순간 모든 생성기가 자신의 집합을 이미 다 써 버린 (모든 의 모든 원소가 이미 나온) 경우 기계는 패배한다. 위의 순서 선택을 모두 고려했을 때 으로 멈추면서 패배가 아닌 실행이 하나라도 존재하면 그 기계는 잘 만들어진 것이다.
주어진 기계가 잘 만들어졌는지 판정하라.
입력
첫 줄에 생성기의 개수 이 주어진다 (). 다음 개의 줄은 각 생성기를 설명하며, 번째 줄에는 와 그 뒤에 의 원소 개가 임의의 순서로 공백 하나로 구분되어 주어진다. 모든 원소는 에 속하고, 한 줄 안의 원소는 서로 다르며, 이다.
출력
기계가 잘 만들어졌으면 TAK을, 그렇지 않으면 NIE를 출력한다.