Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29.09 - 05.10.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
32.11 Кб
Скачать

ЗАДАЧА №628

Clear World and Brothers

(Время: 2 сек. Память: 16 Мб Сложность: 46%)

Наконец в деревнях Виллорибо и Виллобаджо закончились праздники. Перемыта вся посуда! Этот процесс прошел так быстро и непринужденно, что братьями Карлионе было решено открыть сеть агентств «Clear World and Brothers», специализирующихся на профессиональном мытье посуды. В области Новая Берляндия, где и находятся знаменитые деревни, всего N деревень. Система координат введена так, что Виллорибо имеет координаты (x1, 0), а Виллобаджо - (x2, 0). Координаты всех деревень целые числа не превосходящие по модулю 106. Вы работаете на мистера Берлионе старшего и ваша задача найти оптимальное расположение для регионального отделения «Clear World and Brothers», то есть сумма расстояний от агентства до всех деревень должна быть наименьшей и агентство обязательно должно располагаться на прямолинейном шоссе Виллорибо-Виллобаджо (возможно расположение не только внутри, но и на границе отрезка).

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

В первой строке входного файла INPUT.TXT записано натуральное число N (2 ≤ N ≤ 15000). Далее в N строках записаны пары координат всех вершин. Виллорибо и Виллобаджо первая и вторая деревня соответственно. Возможно, что сколько-то деревень расположены так близко, что их координаты совпадают.

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

В выходной файл OUTPUT.TXT выведите абсциссу оптимального расположения агентства. Разрешается абсолютная или относительная погрешность не более 10-6.

Пример

INPUT.TXT

OUTPUT.TXT

1

4 -10 0 10 0 3 1 1 -1

2.000000

ЗАДАЧА №640

Test-The-Best

(Время: 1 сек. Память: 16 Мб Сложность: 50%)

Конкурс Test-the-best (http://www.test-the-best.by), в котором участвуют лучшие программисты из Беларуси, России и других стран, проводит очный тур. Стараясь не отставать от времени, организаторы решили позаботиться о безопасности. В последнее время на рынке техники есть много аппаратуры, позволяющей осуществлять видеонаблюдение.

Широко распространены программы, позволяющие автоматически обрабатывать полученные результаты. Однако имея дело с участниками этих соревнований, на существующие разработки полагаться небезопасно. Поэтому у оргкомитета возникла необходимость написания собственной системы анализа изображений. Перед вами поставлена задача сравнения двух черно-белых изображений на клетчатой сетке. Изображения считаются одинаковыми, если множества черных пикселей в них могут быть получены друг из друга поворотом на 90, 180, или 360 градусов и, возможно, симметрией относительно вертикальной оси.

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

Входной файл INPUT.TXT содержит описания двух изображений в следующем формате: первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 500) - высоту и ширину изображения соответственно. Затем следуют n строк, содержащих по m символов: «#» обозначает черный пиксель, «.» - белый.

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

В выходной файл OUTPUT.TXT выведите одно слово: «Yes», если изображения одинаковы и «No» в противном случае.

Примеры

INPUT.TXT

OUTPUT.TXT

1

7 8 ........ ..###... ..#..... ........ ........ ........ ........ 6 10 .......... ...#...... ...#...... ...##..... .......... ..........

Yes

2

1 1 # 1 1 .

No

ЗАДАЧА №621

Ближайшее число

(Время: 1 сек. Память: 16 Мб Сложность: 46%)

Дана матрица A размером NxN, заполненная неотрицательными целыми числами. Расстояние между двумя элементами Ai j и Ap q определено как |i - p| + |j - q|. Требуется заменить каждый нулевой элемент матрицы ближайшим ненулевым. Если есть две или больше ближайших ненулевых ячейки, нуль должен быть оставлен.

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

В первой строке входного файла INPUT.TXT содержится натуральное число N (N≤200). Затем идут N строк по N чисел, разделённых пробелами и представляющих собой матрицу. Элементы матрицы не превосходят значения 106.

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

В выходной файл OUTPUT.TXT выведите N строк по N чисел, разделённых пробелами, - модифицированную матрицу.

Пример

INPUT.TXT

OUTPUT.TXT

1

3 0 0 0 1 0 2 0 3 0

1 0 2 1 0 2 0 3 0

1111. Квадраты

Ограничение времени: 0.5 секунды Ограничение памяти: 64 МБ

Даны n (1 ≤ n ≤ 50) квадратов и точка P. Расстояние между P и квадратом равно минимальной длине отрезка, соединяющего P с точкой на периметре или во внутренней области квадрата. В случае, когда P лежит внутри квадрата, расстояние равно нулю. Некоторые квадраты могут быть точками, то есть все вершины квадрата могут совпадать. Напишите программу, которая отсортирует квадраты в порядке возрастания расстояния до точки P.

Исходные данные

Первая строка содержит целое число n. Следующие n строк содержат по четыре целых числа из диапазона (−9999, 9999). Первые два числа задают x и y координаты одной из вершин квадрата, следующие два числа задают положение противоположной вершины. Последняя строка содержит x и y координаты точки P.

Результат

Выведите строку, содержащую номера квадратов, отсортированных по расстоянию до точки P. Номера квадратов заданы порядком, в котором квадраты даны во вводе. Если у двух квадратов одинаковое расстояние до точки P, то первым в списке должен идти меньший номер. При сравнении расстояний точности 10−14 достаточно.

Пример

исходные данные

результат

2

0 0 1 1

0 3 1 4

0 0

1 2

Метки: геометрия  (

Начало формы

скрыть метки для нерешенных задач

Конец формы

)

Сложность: 405 

1423. Басня о строке

Ограничение времени: 1.0 секунды Ограничение памяти: 64 МБ

Вступление

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

Когда компьютеры были большими, деревья маленькими, а солнце светило ярче… Короче говоря, жили-были Три Программиста. Вряд ли они участвовали в контестах, поскольку никаких контестов в те далёкие времена ещё не было. Не было ACM ICPC, не было даже Timus Online Judge. А Три Программиста — были.

Задача

Однажды Три Программиста придумали занятную игру для тренировки памяти и умственных способностей. Первый Программист сочинил строку S из N символов и сообщил её Второму и Третьему Программистам. Второй Программист произвёл над этой строкой X (0 ≤ X < N) последовательных циклических сдвигов (под циклическим сдвигом строки понимается перенос её последнего символа в начало). В результате этих манипуляций получилась строка T, которую он сообщил Третьему Программисту. Задачей Третьего Программиста было определить число X, либо сообщить Второму Программисту, что он ошибся, поскольку строка T не могла быть получена из строки S с помощью циклических сдвигов.

Исходные данные

Первая строка содержит целое число N (1 ≤ N ≤ 250000). Вторая строка содержит строку S. Третья строка содержит строку T. Обе строки имеют длину N и могут содержать любые символы таблицы ASCII с кодами от 33 до 255.

Результат

Если строка T может быть получена из строки S с помощью циклических сдвигов, выведите искомое число X, иначе выведите «−1». Если задача имеет несколько решений, можно вывести любое из них.

Пример

исходные данные

результат

11

abracadabra

racadabraab

9

Подсказка

Рассмотрим строки S = «abracadabra» и T = «racadabraab». Строка T может быть получена из строки S с помощью 9 циклических сдвигов: «abracadabra» > «aabracadabr» > «raabracadab» > «braabracada» > «abraabracad» > «dabraabraca» > «adabraabrac» > «cadabraabra» > «acadabraabr» > «racadabraab».

Автор задачи: Никита Рыбак, Илья Гребнов, Дмитрий Ковалёв Источник задачи: Timus Top Coders: First Challenge

Метки: строковые алгоритмы  (

Начало формы

скрыть метки для нерешенных задач

Конец формы

)

Сложность: 210

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]