Представьте себе группу прямоугольников, нарисованных на плоскости, каждый прямоугольник с вершинами в целочисленных координатах и сторонами, параллельными осям:

Прямоугольники разбивают плоскость на несколько непересекающихся областей, выделенных красным и синим цветом ниже:

Ваша цель - найти количество таких областей, которые являются идеальными квадратами. В приведенном выше примере их три:

Обратите внимание, что большой квадрат в середине не считается, поскольку он не является отдельной областью, а вместо этого состоит из нескольких меньших непересекающихся областей.
вход
Вы можете написать функцию или полную программу для этой задачи.
Входные данные будут 4nнеотрицательными целыми числами, определяющими nпрямоугольники на плоскости. Каждый прямоугольник представлен двумя противоположными вершинами, например, 4 9 7 8представляет прямоугольник с противоположными вершинами (4, 9)и (7, 8). Обратите внимание, что этот прямоугольник также может быть представлен как 7 8 4 9или 4 8 7 9.
Точный формат ввода является гибким (например, строка, разделенная пробелами, строка, разделенная запятыми, один массив целых чисел, список кортежей координат и т. Д.), Но, пожалуйста, будьте разумны и приведите пример того, как запустить свой код в своем посте. Вы не можете изменить порядок ввода.
Для простоты можно предположить, что никакие два ребра не будут перекрываться - это включает перекрытие в вершине. В частности, это означает, что никакие два прямоугольника не будут касаться от края до края или от угла к углу, и прямоугольники будут иметь ненулевую площадь.
Выход
Ваша программа должна напечатать или вернуть одно целое число, которое является числом квадратных областей.
счет
Это код гольф, поэтому код в наименьшем количестве байтов выигрывает.
Контрольные примеры
Входные данные:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
Выход:
4
Это просто четыре непересекающихся квадрата:

Входные данные:
2 1 3 11
1 10 5 19
6 10 11 3
8 8 15 15
13 13 9 5
15 1 19 7
17 19 19 17
Выход:
3
Это пример теста в начале поста.
Входные данные:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
Выход:
7

Входные данные:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
Выход:
14

Входные данные:
0 99999 100000 0
Выход:
0
Это всего лишь один большой прямоугольник.
Входные данные:
0 99999 100000 0
2 1 142857 285714
Выход:
1
Два больших прямоугольника, которые перекрываются.