0247. Десант
Имя входного файла: | attack.in |
Имя выходного файла: | attack.out |
Ограничение по времени: | 2 s |
Ограничение по памяти: | 256 megabytes |
Вероломный генерал терран Алекс Стуков решил захватить город протоссов Талдарим. Вам же требуется составить план нападения.
Чтобы захватить город, надо захватить все его действующие пилоны. Проблема заключается в том, что иногда пилоны выходят из строя или наоборот – новые пилоны вводятся в эксплуатацию. Вам требуется определить план захвата города после каждого изменения в системе пилонов города.
Введём в городе декартову прямоугольную систему координат. Тогда место высадки захватчиков и положения пилонов города можно обозначить парой целых чисел (x, y) – координатами в этой системе. Расстояние между точками (x1, y1) и (x2, y2) определяется как сумма модулей разности соответствующих координат (|x1 - x2| + |y1 - y2|).
Захват города происходит следующим образом. Пусть n – количество работающих пилонов, тогда n захватчиков высаживаются в некоторой точке (обозначим её (x, y)). Каждый из них идёт к одному пилону по кратчайшему пути. Никакие два захватчика не идут к одному пилону. Опасностью операции называется суммарное расстояние от точки высадки до каждого из пилонов. Чтобы операция прошла удачно, требуется найти точку высадки с минимальной опасностью. Если таких точек несколько требуется вывести ту, у которой координата x минимальна. Если и таких точек несколько, то требуется вывести ту, у которой координата y минимальна.
Изначально нет работающих пилонов.
Формат входного файла
В первой строке входного файла находится число q (1 ≤ q ≤ 100000) – количество изменений в системе пилонов города. Следующие q строк содержат по три целых числа t, x, y (-109 ≤ x, y ≤ 109) – тип изменения и координаты точки нового пилона. Если t равно 1, то это значит, что пилон с координатами в точке (x, y) введен в эксплуатацию. Если t равно -1, то это значит, что пилон с коодинатами в точке (x, y) вышел из строя. Гарантируется, что перед тем, как пилон вышел из строя, он работал. Никакие два работающих пилона не будут находиться в одной точке. Гарантируется, что после каждого действия существует хотя бы один рабочий пилон.
Формат выходного файла
В выходной файл выведите q строчек. В i–ой строчке выходного файла выведите два числа – координаты оптимальной точки высадки, после i–ого изменения в системе пилонов города.
Пример:
attack.in | attack.out |
---|---|
3 1 1 1 1 1 2 -1 1 1 | 1 1 1 1 1 2 |
10 1 -6 3 1 10 -6 -1 10 -6 1 -10 4 1 4 -10 1 -2 7 1 -9 -1 1 -8 -3 1 2 9 1 -5 -7 | -6 3 -6 -6 -6 3 -10 3 -6 3 -6 3 -6 3 -8 -1 -6 3 -6 -1 |
Источник: XXIII Городская олимпиада школьников г. Петрозаводска по информатике
Автор: Никита Иоффе
Обсудить Отправить решение
Версия для печати