직사각형 시트의 합집합 넓이와 둘레
시간 제한1초메모리 제한128 MB
좌표가 0부터 10000 사이인 정수이고 변이 축에 평행한 직사각형이 최대 10000개 주어질 때, 겹치는 부분을 한 번만 세어 합집합의 넓이를 구하고 r=2이면 둘레도 구한다.
문제
평면 위에 직사각형 모양의 시트가 여러 장 놓여 있다. 이 시트들로 덮인 영역의 넓이 또는 둘레 길이를 구하는 프로그램을 작성하여라.
평면을 좌표평면으로 볼 때, 시트의 배치는 다음 두 조건을 만족한다.
- 각 시트(직사각형)의 네 꼭짓점의 , 좌표는 모두 이상 이하의 정수이며, 직사각형의 각 변은 축 또는 축에 평행하다.
- 시트의 개수는 최대 장이다.
여러 시트는 서로 겹칠 수 있으며, 겹친 부분의 넓이는 한 번만 센다. 둘레 길이는 덮인 영역 전체 경계의 총 길이이며, 영역 내부에 생기는 구멍의 경계도 포함한다.
입력
첫째 줄에 직사각형의 개수 과 질의의 종류를 나타내는 정수 가 공백으로 구분되어 주어진다. 둘째 줄부터 개의 줄에 걸쳐, 각 시트의 왼쪽 아래 꼭짓점 좌표 과 오른쪽 위 꼭짓점 좌표 가 , , , 의 순서로 공백으로 구분되어 주어진다.
출력
이면 첫째 줄에 덮인 영역의 넓이를 출력한다. 이면 첫째 줄에 넓이를, 둘째 줄에 둘레의 길이를 출력한다. 어느 경우든 마지막에 개행 문자를 출력한다.