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

Задача . D. Объединение k-подотрезков


Вам задано n отрезков на прямой и число k. Будем считать точку на прямой насыщенной, если она принадлежит хотя бы k отрезкам. Найдите набор из наименьшего количества отрезков на прямой, содержащий насыщенные точки и только их.

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

В первой строке находятся два целых числа n и k (1 ≤ k ≤ n ≤ 106) — количество отрезков и параметр, указанный в условии задачи.

В каждой из следующих n строк находится пара целых чисел li, ri ( - 109 ≤ li ≤ ri ≤ 109) — концы i-го отрезка. Отрезки могут вырождаться в точки, а также могут пересекаться друг с другом произвольным образом. Отрезки заданы в произвольном порядке.

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

В первой строке выведите целое число m — наименьшее количество отрезков.

Далее в m строках выведите по два целых числа aj, bj (aj ≤ bj) — концы очередного отрезка. Отрезки нужно выводить в порядке слева направо.


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

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

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