엘프 토너먼트 대진표

시간 제한5초메모리 제한512 MB

요약
어떤 경기 결과가 나와도 민감한 엘프가 K라운드 안에 친구와 만나지 않는 초기 대진 순서가 있는지 판단합니다.
난이도

보통10점 중 5점

유형
완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

엘프 나라에서 토너먼트를 연다. 참가를 원하는 엘프는 2N2^N명이다. 대회가 시작되면 각 엘프는 1부터 2N2^N까지의 서로 다른 번호를 받고, 엘프 대통령이 원하는 순서로 이들을 한 줄로 세운다.

경기는 두 엘프가 치르고, 모든 경기에는 승자와 패자가 한 명씩 나온다. 무승부는 없다. 1라운드에서는 줄의 첫 번째 엘프와 두 번째 엘프가 맞붙고, 세 번째 엘프와 네 번째 엘프가 맞붙는 식으로 진행한다. 1라운드가 끝나면 진 2N−12^{N-1}명은 줄에서 빠지고, 이긴 2N−12^{N-1}명은 원래 순서를 그대로 유지한 채 남는다. 남은 엘프끼리 같은 방식으로 2라운드를 치른다. NN라운드가 끝나면 한 명만 남고, 그 엘프가 우승한다.

이 중 MM명은 예민해서 경기에서 친구를 만나면 크게 슬퍼한다. 정확히 말하면 예민한 엘프 EiE_i는 1라운드부터 KiK_i라운드까지 중 어느 한 경기에서라도 자기 친구와 맞붙으면 슬퍼한다. 친구 관계는 한쪽 방향일 수 있다. 어떤 엘프가 다른 엘프를 친구로 여겨도 그 반대는 성립하지 않을 수 있다.

경기 결과가 어떻게 나오든 슬퍼하는 엘프가 한 명도 없도록 처음 줄 순서를 정할 수 있는지 판별하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 두 정수 NN과 MM이 주어진다. 이어서 예민한 엘프 MM명의 정보가 두 줄씩 주어진다. 첫 줄에는 세 정수 EiE_i, KiK_i, BiB_i가 주어지고, 둘째 줄에는 그 엘프가 친구로 여기는 엘프 BiB_i명의 번호가 주어진다.

제한

  • 1≤T≤2001 \le T \le 200
  • 1≤N≤31 \le N \le 3
  • 0≤M≤2N0 \le M \le 2^N
  • 1≤Ei≤2N1 \le E_i \le 2^N이고, MM개의 EiE_i는 모두 다르다.
  • 1≤Ki≤N1 \le K_i \le N
  • 1≤Bi1 \le B_i이고, 한 줄에 주어지는 BiB_i개의 번호는 서로 다르며 EiE_i와도 다르다.
  • M≤B1+B2+⋯+BM≤min⁡(2M,2N)M \le B_1 + B_2 + \cdots + B_M \le \min(2M, 2^N)

출력

각 테스트 케이스마다 한 줄에 Case #x: 를 출력한 다음, 조건을 만족하는 줄 순서가 있으면 YES를, 없으면 NO를 출력한다. xx는 1부터 시작하는 테스트 케이스 번호다.

예제1

  1. 예제 1

    입력
    3
    1 1
    1 1 1
    2
    2 2
    1 1 1
    2
    3 1 1
    4
    3 3
    1 2 2
    3 4
    2 2 2
    5 6
    7 1 1
    8
    
    예상 출력
    Case #1: NO
    Case #2: YES
    Case #3: YES