아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

도박 기계

시간 제한1초메모리 제한128 MB

요약
각 발전기가 다른 발전기 집합으로 이어지는 구조에서 출력 순서를 적절히 정해 마지막 발전기에서 모든 집합이 소진된 채 멈추는 패배를 피할 수 있는지 판정한다. 즉, 패배가 아닌 정지가 가능한지 결정한다.
난이도

보통10점 중 7점

유형
그래프, DFS, 그리디, 구현
정답자
아직 제출이 없습니다

문제

도박 기계는 nn개의 정수 생성기 G1,G2,…,GnG_1, G_2, \ldots, G_n으로 이루어진다 (1≤n≤10001 \le n \le 1000). 각 생성기 GiG_i에는 고정된 집합 Si⊆{1,2,…,n}S_i \subseteq \{1, 2, \ldots, n\}이 정해져 있다. ki=∣Si∣k_i = |S_i|라 하면 집합은 비어 있을 수도 있고, 모든 kik_i의 합 k1+k2+⋯+knk_1 + k_2 + \cdots + k_n은 1200012000을 넘지 않는다.

생성기가 활성화될 때마다 다음 규칙에 따라 정수 하나를 만들어 낸다.

  • GiG_i가 처음 활성화되면 SiS_i의 원소 하나를 만들어 낸다.
  • 이후 활성화될 때마다 GiG_i는 아직 만들어 내지 않은 SiS_i의 원소를 하나 만들어 낸다. 각 생성기가 원소를 내보내는 순서는 마음대로 정할 수 있다.
  • SiS_i의 모든 원소를 이미 만들어 냈다면 (특히 SiS_i가 비어 있으면) GiG_i는 00을 만들어 낸다.

기계는 항상 G1G_1을 활성화하며 시작한다. 어떤 생성기가 양의 정수 rr을 만들어 내면 다음에는 GrG_r이 활성화된다. 어떤 생성기가 00을 만들어 내는 순간 기계는 멈춘다.

멈춤을 일으킨 00을 마지막 생성기 GnG_n이 만들어 냈고, 그 순간 모든 생성기가 자신의 집합을 이미 다 써 버린 (모든 SiS_i의 모든 원소가 이미 나온) 경우 기계는 패배한다. 위의 순서 선택을 모두 고려했을 때 00으로 멈추면서 패배가 아닌 실행이 하나라도 존재하면 그 기계는 잘 만들어진 것이다.

주어진 기계가 잘 만들어졌는지 판정하라.

입력

첫 줄에 생성기의 개수 nn이 주어진다 (1≤n≤10001 \le n \le 1000). 다음 nn개의 줄은 각 생성기를 설명하며, i+1i + 1번째 줄에는 kik_i와 그 뒤에 SiS_i의 원소 kik_i개가 임의의 순서로 공백 하나로 구분되어 주어진다. 모든 원소는 {1,…,n}\{1, \ldots, n\}에 속하고, 한 줄 안의 원소는 서로 다르며, k1+⋯+kn≤12000k_1 + \cdots + k_n \le 12000이다.

출력

기계가 잘 만들어졌으면 TAK을, 그렇지 않으면 NIE를 출력한다.

예제3

  1. 예제 1

    입력
    2
    2 1 2
    1 2
    
    예상 출력
    TAK
    
  2. 예제 2

    입력
    2
    1 2
    0
    
    예상 출력
    NIE
    
  3. 예제 3

    입력
    3
    2 3 2
    2 1 3
    1 2
    
    예상 출력
    TAK