Олимпиадный тренинг

Задача . F. Мультивселенная


Рассмотрим бесконечную сетку из единичных квадратов. Некоторые ячейки сетки являются планетами.

Мультивселенная M = {p1, p2, ..., pk} — это набор планет. Предположим, что есть бесконечный ряд или столбец со следующими двумя свойствами: 1) он не содержит ни одну планету pi из мультивселенной M; 2) по обе стороны от этого столбца или строки находятся планеты из M. В этом случае мы можем разбить мультивселенную M на две непустые мультивселенные M1 и M2, содержащие планеты, расположенные по соответствующую сторону этого ряда или столбца.

Мультивселенная, которую нельзя разделить, используя описанную выше операцию, называется вселенной. Мы выполняем операции, пока все мультивселенные не превратятся во вселенные.

Вам даны положения планет в изначальной мультивселенной. Найдите количество вселенных, которые появятся в результате описанного процесса. Можно доказать, что результат не зависит от порядка произведения операций.

Входные данные

В первой строке входного файла записано целое число n, (1 ≤ n ≤ 105), обозначающее количество планет в мультивселенной.

В каждой из следующих строк содержится по паре целых чисел xi и yi, ( - 109 ≤ xi, yi ≤ 109), обозначающих координаты i-ой планеты. Все планеты расположены в различных ячейках сетки.

Выходные данные

Выведите итоговое количество вселенных.

Примечание

Следующий рисунок описывает первый тест:


Примеры
Входные данныеВыходные данные
1 5
0 0
0 2
2 0
2 1
2 2
3
2 8
0 0
1 0
0 2
0 3
3 0
3 1
2 3
3 3
1

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя