Підрахунок областей#6780

Підрахунок областей

1 секунда
256 мегабайтів
Дуже легка

На площині - розташовано кілька прямокутників. Усі сторони цих прямокутників паралельні або осі , або осі , і всі вони знаходяться в межах, зазначених нижче. Інших обмежень на координати прямокутників немає.

Площина поділена на області, межами яких є сторони одного або кількох прямокутників. Наприклад, на Рисунку 1 три прямокутники перекриваються, утворюючи шість областей.

Прямокутники можуть перекриватися складніше. Наприклад, два прямокутники можуть мати спільні сторони, спільні кутові точки або бути вкладеними один в одного. Рисунок 2 демонструє ці випадки.

Напишіть програму, яка підрахує кількість областей на площині, розділеній прямокутниками.

Вхідні дані

Вхідні дані складаються з кількох тестів. Кожен тест має такий формат:

l_1\ t_1\ r_1\ b_1

l_2\ t_2\ r_2\ b_2

l_n\ t_n\ r_n\ b_n

Кожен тест починається зі значення (1 \leq n \leq 50) — кількості прямокутників на площині. Кожен із наступних рядків описує один прямокутник. -ий рядок містить чотири цілі числа l_i, t_i, r_i і b_i — координати -го прямокутника; (l_i, t_i) задають - координати верхнього лівого кута, а (r_i, b_i) — координати нижнього правого кута прямокутника (0 \leq l_i < r_i \leq 10^6, 0 \leq b_i < t_i \leq 10^6 для 1 \leq i \leq n). Чотири цілі числа розділені одним пробілом.

Вхідні дані завершуються одним нулем.

Вихідні дані

Для кожного тесту виведіть в окремому рядку кількість областей, на які площина розбивається сторонами прямокутників.

Рисунок 1. Три прямокутники розбивають площину на шість областей. Відповідає першому тесту. Осі і наведені лише для ілюстрації, вони не ділять площину.

Рисунок 2. Прямокутники перекриваються більш складним чином. Відповідають другому тесту.

Приклади

Приклад 1

Loading
Loading