Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Владелец одного особняка, на территории которого произрастает большое число редких видов деревьев, захотел отгородить свой сад от вандалов, затратив на это как можно меньшее количество ресурсов. Для этих целей он составил карту земельного участка, отметив на ней точки расположения каждого отдельного дерева.
От Вас требуется определить минимально возможную длину забора, которым можно ограничить заданное множество точек.
Во входном файле "input.txt" записано натуральное число n, за которым следует ровно n пар вещественных чисел (xi, yi), отвечающих за координаты исходных точек.
Выходной файл "output.txt" должен содержать ответ, записанный с точностью до 5-го знака после запятой.
Гарантируется, что в исходном множестве присутствует набор точек, не лежащих на одной прямой.
− 10 ≤ (xi, yi) ≤ 10, 3 ≤ n ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Начинающий программист Вася занимается анализом разного рода многоугольников.
Однажды в процессе исследования перед ним возникла следующая задача.
Пусть имеются два простых многоугольника (не имеющие самопересечений), каждый из которых задан упорядоченным набором своих вершин.
Требуется определить, можно ли один такой многоугольник получить из другого путем применения к нему следующих операций:
Во входном файле "input.txt" указано натуральное n, за которым следует набор из 2 ⋅ n вершин
(сначала для первого, а затем — для второго многоугольника),
записанных в виде пар целых десятичных чисел: (xi, yi).
Выходной файл "output.txt" должен содержать одно из следующих значений:
1 — если оба многоугольника подобны между собой;
0 — в противном случае.
Гарантируется, что оба многоугольника являются невырожденными.
Все входные значения являются целыми десятичными числами.
− 104 ≤ (xi, yi) ≤ 104, 3 ≤ n ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Пусть имеется набор из n точек, расположенных на поверхности цилиндра. Каждая i-я точка задается своими цилиндрическими координатами: (zi, φi), где zi направлена вдоль вертикальной оси цилиндра, φi — полярный угол, указанный в радианах.
Требуется найти геодезическое расстояние между ближайшей парой таких точек, если известно, что радиус цилиндра равен 1.
Во входном файле "input.txt" записано натуральное число n, за которым следует ровно n пар вещественных чисел (zi, φi), отвечающих за координаты исходных точек.
Выходной файл "output.txt" должен содержать ответ, записанный с точностью до 5-го знака после запятой.
− 10 < zi < 10, 0 ≤ φi < 2 ⋅ π,
2 ≤ n ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Пусть имеется некоторая трехмерная область, покрытая регулярной прямоугольной сеткой, между ячейками которой перемещаются муравьи.
Каждый муравей начинает свое движение из некоторой стартовой ячейки и может перемещаться в любом
из шести доступных направлений: вверх, вниз, вправо, влево, вперед и назад.
Известно, что за один шаг по времени каждый муравей может сместиться не более, чем на одну ячейку.
Для известного набора стартовых ячеек требуется определить минимально возможное число шагов,
за которое два муравья могут оказаться в одной ячейке.
Входной файл "input.txt" содержит число N, за которым следует набор
из 3 × N целочисленных индексов стартовых ячеек: Xi, Yi, Zi.
Выходной файл "output.txt" должен содержать
минимально возможное число шагов,
за которое два муравья встретятся.
− 106 ≤ (Xi, Yi, Zi) ≤ 106, 2 ≤ N ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Начинающий программист Вася занимается разработкой системы, отвечающей за анимацию подвижных частиц.
Известно, что каждая такая частица должна двигаться вдоль ломаной линии, которая в моменты времени ti проходит через установленные точки с координатами: (xi, yi), где i = 0, 1, …, (n − 1). При этом полагается, что на каждом интервале [ti, ti + 1] скорость частицы остается неизменной. В свою очередь, информация о положениях частицы в моменты времени ti в дальнейшем может уточняться.
Помимо всего прочего ему также требуется эффективным образом обрабатывать запросы следующих видов:
mov i x y — обновить координаты положения частицы в момент времени ti;
get a b — вернуть расстояние, пройденное частицей за время [a, b].
Поскольку Вася еще недостаточно опытен в решении подобных задач, он обратился за помощью к Вам.
В начале входного файла "input.txt" записано натуральное n, за которым следует ровно 3 × n вещественных чисел (ti, xi, yi), определяющих изначальную траекторию. Далее идет натуральное m, за которым следует ровно m запросов.
Выходной файл "output.txt" должен содержать результаты выполнения каждого из get-запросов, указанные с точностью до 5-го знака после запятой.
ti < ti + 1 ≤ 10, 2 ≤ n ≤ 105, 0 < m ≤ 104
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Пусть имеется множество точек на плоскости, заданных своими двумерными координатами: M = {(xi, yi): i = 0, 1, …, n − 1}.
По двум заданным точкам A и B требуется найти такую точку C из M,
чтобы образованный ими треугольник {A, B, C} содержал в себе наибольшее число точек из M.
При этом точки, лежащие на границе такого треугольника, здесь также следует учитывать.
В начале входного файла "input.txt" записано натуральное число n,
за которым следует ровно n пар целых чисел, обозначающих координаты точек (xi, yi).
Далее записаны координаты точек A и B.
Выходной файл "output.txt" должен содержать индекс найденной точки C.
Все входные значения являются целыми десятичными числами.
Точки A и B не совпадают между собой.
− 104 ≤ (xi, yi) ≤ 104, 0 < n ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Карта мира в одной многопользовательской игре поделена на неперекрывающиеся между собой регионы, имеющие форму простых многоугольников. Между регионами перемещаются игроки, оснащенные датчиками слежения. Для каждого игрока определен некоторый ограниченный набор областей, которые ему разрешается посещать.
Модератор игры со своего пульта должен наблюдать за перемещениями игроков и своевременно реагировать в случае нарушения ими границ допустимых регионов. С этой целью перед программистами поставили задачу разработать систему, которая бы позволяла в режиме реального времени определять местоположение игроков на карте.
Пусть имеется планарное подразбиение, состоящее из набора неперекрывающихся между собой многоугольных ячеек, образованных вершинами и соединяющими их прямыми ребрами. Для заданного набора контрольных точек требуется определить номера ячеек, в которые они попадают.
Во входном файле "input.txt" записано натуральное число n, за которым следует ровно n пар целых десятичных чисел (xi, yi), задающих координаты вершин планарного подразбиения.
Далее указано число m, за которым следует ровно m ячеек, каждая из которых задается в виде последовательности составляющих ее вершин.
Так, вначале указывается число таких вершин, после чего перечисляются их номера в исходном массиве (расположенные в порядке обхода по часовой стрелке).
При этом полагается, что нумерация вершин начинается с нуля.
В окончании входного файла указано натуральное k, за которым следует ровно k точек, для которых необходимо выполнить поисковый запрос.
Выходной файл "output.txt" должен содержать последовательность из номеров ячеек, в которые попадают указанные точки.
При этом полагается, что нумерация ячеек начинается с нуля.
Для точек, лежащих за пределами каких либо ячеек, в качестве ответа необходимо вывести − 1.
Гарантируется, что ни одна из искомых точек не попадает на границу ячейки.
Все входные значения являются целыми десятичными числами.
− 104 ≤ (xi, yi) ≤ 104, 3 ≤ n ≤ 103, 0 < k ≤ 3 ⋅ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Рассмотрим конфигурацию из n прямых на плоскости. Требуется определить число всех треугольных ячеек, образованных в результате разбиения плоскости указанным набором прямых.
Во входном файле "input.txt" записано натуральное число n, за которым следует ровно n прямых. Каждая прямая задается парой несовпадающих точек: (Axi, Ayi), (Bxi, Byi).
Выходной файл "output.txt" должен содержать число полученных треугольников.
Гарантируется, что никакие две прямые не совпадают между собой.
Все входные значения являются целыми десятичными числами.
− 104 ≤ (Axi, Ayi, Bxi, Byi) ≤ 104, 3 ≤ n ≤ 300
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|