영역 전쟁

각 갱단은 서로 겹치지 않는 축에 평행한 직사각형 여러 개를 소유한다. 갱단마다 정확히 하나씩 포기해서 서로 다른 갱단의 남은 직사각형이 겹치지 않게 만들 수 있는지 판정한다.

어려움8기하완전 탐색백트래킹구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

도시에는 NN개의 갱이 있다. 각 갱은 직사각형 모양의 영역 여러 개를 차지하고 있으며, 서로 다른 갱의 영역이 겹치면 분쟁이 생긴다.

NN2N3002 \le N \le 300을 만족하고, ii번째 갱은 MiM_i개의 영역을 가진다. 모든 영역은 xx축과 yy축에 평행한 변을 가진 직사각형이며, 왼쪽 아래 꼭짓점 (x1,y1)(x_1, y_1)과 오른쪽 위 꼭짓점 (x2,y2)(x_2, y_2)로 주어진다. 좌표는 0x1<x2<10000000 \le x_1 < x_2 < 10000000y1<y2<10000000 \le y_1 < y_2 < 1000000을 만족하는 정수이다.

서로 다른 갱에 속한 두 영역이 양의 넓이로 겹치는 부분이 분쟁 지역이다. 변이나 꼭짓점만 맞닿는 경우는 분쟁 지역이 아니다.

각 갱은 자신의 MiM_i개 영역 중 정확히 하나를 포기해야 한다. 포기한 영역을 제외한 모든 영역 사이에 분쟁 지역이 하나도 없도록 할 수 있는지 판정하라.

입력

첫째 줄에 갱의 수 NN이 주어진다.

이어서 11번 갱부터 NN번 갱까지 각 갱의 영역 정보가 순서대로 주어진다. ii번째 갱에 대한 입력의 첫째 줄에는 영역의 개수 MiM_i(2Mi152 \le M_i \le 15)가 주어진다. 이어지는 MiM_i개의 줄에는 각 영역의 왼쪽 아래 꼭짓점과 오른쪽 위 꼭짓점의 좌표 x1x_1, y1y_1, x2x_2, y2y_2가 공백으로 구분되어 주어진다.

한 갱이 가진 영역들은 서로 겹치지 않는다.

출력

각 갱이 영역을 하나씩 포기하여 모든 분쟁 지역을 없앨 수 있으면 YES를, 그럴 수 없으면 NO를 출력한다.

힌트

어떤 영역이 다른 갱의 서로 다른 두 영역과 겹치면, 그 영역은 반드시 포기해야 한다. 반대로 남기기로 한 영역과 겹치는 상대 영역은 반드시 포기되어야 하므로, 하나의 선택이 다른 갱의 선택을 연쇄적으로 강제할 수 있다.