BOJ 9891 Rect

BOJ 9891 Rect

문제 링크:

문제 내용

두 직사각형에 대해, 어느 직사각형도 평행이동과 90도 회전으로 다른 직사각형에 완전히 포함되도록 옮길 수 없을 때, 두 직사각형을 비교할 수 없다고 합니다.

nn개의 직사각형이 주어집니다. 비교할 수 없는 직사각형의 쌍의 개수를 출력하세요.

입력

첫 번째 줄에는 nn이 주어집니다. (0n10  0000 \le n \le 10\;000)

다음 줄부터 nn개의 줄 각각에 하나의 직사각형을 정의하는 네 개의 값 x1,y1,x2,y2x_1, y_1, x_2, y_2가 주어집니다. 각 직사각형의 변은 축에 평행하며, 왼쪽 아래 꼭짓점의 좌표 (x1,y1)(x_1, y_1)과 오른쪽 위 꼭짓점의 좌표 (x2,y2)(x_2, y_2)로 정의됩니다. (0x1<x210  0000 \le x_1 < x_2 \le 10\;000, 0y1<y210  0000 \le y_1 < y_2 \le 10\;000)

출력

문제의 정답을 출력합니다.

문제 풀이

스포일러

제곱 시간 브루트포스로 풀 수 있습니다.

두 직사각형을 비교할 수 없는지를 알려면 두 직사각형의 가로와 세로만 중요하므로, 가로와 세로를 계산하고, 둘 중에서 작은 값을 ww, 큰 값을 hh로 둡니다.

일단 ww가 같거나 hh가 같으면 두 꼭짓점을 일치시키는 것으로 한쪽을 다른 한쪽에 완전히 겹치게 할 수 있습니다. w1<w2h1<h2w_1 < w_2 \wedge h_1 < h_2인 경우도 마찬가지입니다.

w1<w2h1>h2w_1 < w_2 \wedge h_1 > h_2이면 w1w_1이 가장 작으므로 첫 번째 직사각형이 두 번째 직사각형을 포함할 수 없고, h1h_1이 가장 크므로 첫 번째 직사각형이 두 번째 직사각형에 포함될 수도 없습니다. 따라서 이 경우가 서로 비교할 수 없는 경우가 됩니다.

w1>w2w_1 > w_2이면 두 직사각형의 순서를 바꿔서 위 조건을 적용하면 됩니다.

Last updated on