정사각형 세기
시간 제한1초메모리 제한128 MB
여러 직사각형 방들이 변을 공유할 때 가운데에 난 문으로 이어지며, 방들의 합집합 안에 놓이는 모든 정사각형의 개수를 센다.
문제
박물관의 각 방 바닥은 단위 정사각형 타일들이 격자 모양으로 깔려 있다. 하나하나의 타일뿐 아니라 더 큰 정사각형도 만들 수 있다. 타일들로 이루어진 임의의 블록(, 등)도 정사각형이며, 이러한 정사각형은 모두 개수에 더해야 한다. 정사각형은 두 방에 걸쳐 있을 수도 있는데, 이때는 두 방 사이의 통로를 지나 한 방에서 이웃한 방으로 넘어간다.
예를 들어, 아래 첫 번째 예제의 두 방에는 정사각형이 모두 86개 들어 있다: 크기 45개, 크기 28개, 크기 13개. (두 방 사이의 통로 폭은 3칸뿐이다.)
박물관의 방들이 주어질 때, 모든 정사각형의 개수를 세어라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 그 케이스의 방의 수를 나타내는 양의 정수 이 주어진다. 이어지는 개의 줄은 각각 방 하나를 나타낸다. 모든 방은 직사각형이며 다음과 같이 주어진다.
x1 y1 x2 y2
여기서 과 는 서로 마주 보는 두 꼭짓점의 정수 좌표이다. 어떤 두 방도 서로 겹치지 않지만, 한 변을 공유할 수는 있다. 공유하는 변의 길이가 이면, 두 방 사이에는 그 공유 변의 가운데에 길이 짜리 통로가 있으며, 정사각형은 오직 이러한 통로를 통해서만 한 방에서 다른 방으로 넘어갈 수 있다. 어떤 크기의 정사각형도 두 개보다 많은 방에 걸치지 않는다. 모든 , 좌표는 1,000,000 이하이다. 인 줄은 입력의 끝을 나타내며 처리하지 않는다.
출력
각 테스트 케이스마다 Case i: t 형식으로 한 줄을 출력한다. 여기서 는 테스트 케이스 번호(1부터 시작)이고 는 정사각형의 총 개수이다. 모든 답은 32비트 정수 범위 안에 들어간다.