SOJ ONLINE JUDGE

문제 150

두 가지 값과 조건

내 상태
미제출
난이도
150번 문제 난이도 보기
Platinum III
출제자
rlatjwls7882
시간 제한
5000 ms
메모리 제한
1024 MB
150번 문제 태그 보기
구현

참 또는 거짓인 변수 $N$개가 있다. 변수의 번호는 $0$부터 $N-1$까지이다. 변수의 번호 $u$에 대해 리터럴 $2u$는 변수 $u$가 참이라는 뜻이고, 리터럴 $2u+1$은 거짓이라는 뜻이다.

다음 두 종류의 조건이 총 $M$개 주어진다.

  • $0\ a\ b$: 두 리터럴 $a$와 $b$ 중 적어도 하나가 참이다.
  • $1\ k\ a_1\ a_2\ \cdots\ a_k$: 길이가 $k$인 목록 $a_1, a_2, \cdots, a_k$에 있는 서로 다른 리터럴 중 참인 것은 최대 하나이다.

모든 조건을 동시에 만족하는 변수 배정이 존재하는지 판별해 보자. 목록에는 같은 리터럴이 여러 번 등장할 수 있다.

입력

첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $Q$가 주어진다. $(1\le Q\le100)$

각 테스트 케이스의 첫 번째 줄에 정수 $N$, $M$이 공백으로 구분되어 주어진다. $(1\le N\le50\,000; 0\le M\le200\,000)$

두 번째 줄부터 $M$개의 줄에 걸쳐 다음 두 형식 중 하나로 조건이 주어진다. 각 줄의 값은 공백으로 구분되어 주어진다.

  • $0\ a\ b$: 정수 $a$, $b$가 주어진다. $(0\le a,b<2N)$
  • $1\ k\ a_1\ a_2\ \cdots\ a_k$: 정수 $k$와 리터럴 번호 $a_1, a_2, \cdots, a_k$가 주어진다. $(0\le k\le200\,000; 0\le a_i<2N)$

모든 테스트 케이스에 대한 $N$의 합은 $200\,000$ 이하이고, $M$의 합은 $300\,000$ 이하이다. 모든 테스트 케이스에서 주어지는 목록의 길이 $k$의 합은 $10^6$ 이하이다.

출력

각 테스트 케이스에 대해 모든 조건을 동시에 만족시킬 수 있으면 $1$을, 그렇지 않으면 $0$을 한 줄에 출력한다.

예제 입력 1

3
5 6
1 3 1 9 4
1 2 3 3
1 3 1 5 7
1 2 7 8
0 5 1
0 0 9
6 0
6 0

예제 출력 1

1
1
1

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.