Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 526 527 528 529 530 531 532 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Будем считать, что карта Адриатического моря представляет собой сетку, состоящую из единичных квадратиков, организованных в \(2500\) рядов и \(2500\) столбцов. Ряды пронумерованы от \(1\) до \(2500\) с севера на юг, столбцы пронумерованы от \(1\) до \(2500\) с запада на восток. В море есть N островов, пронумерованных от 1 до N и каждый остров находится внутри некоторого единичного квадрата сетки. Позиция острова K задана его координатами — рядом \(R_k\) и столбцом \(C_k\). Никакие два острова не находятся в одном квадрате.

Из за ветра и морских течений, за один шаг переплыть с одного острова на другой можно только, если они расположены в северо-западном или юго-восточном направлении друг относительно друга.

Точнее, можно переплыть с острова \(A\) на остров \(B\) за один шах, если или \(R_A \lt R_B\) и \(C_A \lt C_B\), или \(R_A \gt R_B\) и \(C_A \gt C_B\). При этом расстояние между островами или наличие островов по дороге не влияет на возможность доплыть с одного острова на другой. Если нельзя доплыть с одного острова на другой напрямую, иногда можно доплыть с использованием промежуточных островов более чем за один шаг. Определим как расстояние между островами величину, равную числу шагов, необходимых, чтобы переплыть с одного острова на другой.

Рассмотрим остров K. Для каждого острова определим, какое минимальное число шагов можно переплыть с него на K. Просуммируем эти числа и получим некоторую величину, характеризующую удаленность K от остальных островов. Требуется найти это число для всех островов. Гарантируется, что в тестах острова расположены так, что с каждого острова можно попасть на каждый.

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

Первая строка входного файла содержит целое число \(n\) (\(3 \le n \le 250000\)) – число островов.

Следующие \(n\) строк сожержат положения островов. Каждое положение задаётся двумя целыми числами \(r_i\) и \(c_i\) между 1 и 2500 (включительно) - ряд и столбец, сооответственно.

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

Выходной файл должен содержать \(n\) строк. Для каждого острова, в порядке вхождения во входно файле, выведите на отдельной строке сумму расстояний дл него со всех остальных островов.

Система оценки

Подзадача 1 (25 баллов): \(1 \le n \le 100\)

Подзадача 2 (25 баллов): \(1 \le n \le 1500\)

Подзадача 3 (10 баллов): \(1 \le n \le 5000\)

Подзадача 4 (20 баллов): \(1 \le n \le 25000\)

Подзадача 5 (20 баллов): Без дополнительных ограничений

Примечание

Пояснение к первому примеру:

На рисунке можно, начав с острова в ряду 2, столбце 3, можно доплыть за один шаг до 4 других островов, а до оставшихся двух островов - за 2 шага.

Примеры
Входные данные
7
1 7
7 5
4 5
4 8
6 6
6 1
2 3
Выходные данные
16
11
12
11
12
16
8
Входные данные
4
1 1
2 3
3 2
4 4
Выходные данные
3
4
4
3
ограничение по времени на тест
0.75 second;
ограничение по памяти на тест
256 megabytes

Байтазар, король Байтотии организовал масштабную реформу имён своих подданных. Имена жителей Байтотии исторически часто содержат повторяющиеся фразы и Байтазар хочет с одной стороны упростить имена, а с другой, сохранить традиции повторения, а именно Байтазар хочет заменить каждое из имён в Байтотии на имя такой же длины, чтобы при этом множества периодов для старого и нового имён совпали, но имя при этом состояло только из символов «0» и «1». Из всех кандидатов в новое имя Байтазар хочет выбрать лексикографически минимальное.

Натуральное число \(k\) (\(1 \le k \lt n\)) называется периодом строки \(s\) длины \(n\) тогда и только тогда, когда для любого натурального \(i\), такого что \(1 \le i \le n - k\), верно что \(s_i = s_{i + k}\).

Множество периодов для данной строки \(s\) – множество таких чисел \(i\), что \(i\) является периодом \(s\). Обозначим его за Per(\(s\)). К примеру, Per(«ABIABUABIAB») = {6, 9}, Per(«0000») = {1, 2, 3}.

Помогите Байтазару перевести имена его подданных, и, возможно, он разрешит вам сохранить ваше собственное имя!

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

В первой строке ввода дано единственное число \(t\) (\(1 \le t \le 20\)) - количество имён, которые необходимо перевести в соответсвии с реформой Байтазара.

В последующих \(t\) строках содержатся имена жителей Байтотии. В \(i\) строке содержится строка \(s_i\), состоящяя из заглавных латинских букв - имя \(i\) жителя до перевода.

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

Вы должны вывесте \(t\) строк. В \(i\) строке выведите имя, в которое превратится имя \(s_i\) после перевода.

Система оценки

Подзадача 1 (30 баллов): длина каждого имени не превосходит 20 (\(|s_i| \le 20\))

Подзадача 2 (70 баллов): длина каждого имени не превосходит 200000 (\(|s_i| \le 200000\))

Примеры
Входные данные
3
ABIABUABIAB
BABBAB
BABURBAB
Выходные данные
01001101001
010010
01000010

Страница: << 526 527 528 529 530 531 532 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест