Автор: | А. Кленин | |||
Входной файл: | input.txt | Ограничение времени: | 4 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 200 Мб |
По горизонтальной плоской поверхности катятся два шарика радиуса R метров каждый. В начальный момент времени шарики имеют координаты центров (x1, y1) и (x2, y2) метров, а также проекции скоростей на координатные оси (dx1, dy1) и (dx2, dy2) метров в секунду соответственно.
Требуется найти время в секундах, спустя которое шарики столкнутся, или определить, что этого не произойдёт.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Г. Гренкин | |||
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Глеб нарисовал на координатной плоскости N точек и стал проецировать их в разных направлениях на ось ординат.
Сначала Глеб выбирает направление проецирования — наклоняет линейку под определённым углом. Затем, параллельно перемещая линейку, Глеб прикладывает её по очереди ко всем точкам и для каждой точки находит точку пересечения линейки с осью ординат. Эта точка пересечения и есть проекция точки на ось ординат.
Глеб проецирует точки на ось ординат во всех возможных направлениях. Сначала он располагает линейку вертикально, а затем начинает разворачивать её против часовой стрелки. При этом угловой коэффициент наклона линейки возрастает от −∞ до +∞.
При каждом направлении проектирования найдётся точка, которая спроецируется "выше всех" (будет иметь наибольшую ординату проекции). Назовём такую точку крайней точкой.
При определённых наклонах линейки крайняя точка изменяется. Требуется написать программу, принимающую на вход координаты точек и выводящую для каждого изменения крайней точки новый номер и угловой коэффициент наклона линейки, при котором произошло это изменение.
Первая строка входного файла содержит целое число N — количество точек.
Далее следуют N строк, каждая из которых содержит пару вещественных чисел xi yi — координаты точки.
Выходной файл должен содержать (2 M+1) чисел, где M — количество изменений крайней точки.
Первое число — это номер точки, которая будет крайней при угловом коэффициенте наклона линейки, стремящемся к −∞. Далее идут M пар чисел ki ji — угловой коэффициент наклона линейки, при котором происходит изменение крайней точки, и номер точки, которая станет крайней после изменения. Пары чисел должны быть выведены в порядке возрастания углового коэффициента.
Угловой коэффициент должен быть выведен с точностью не менее 3-х знаков после запятой.
1 ≤ N ≤ 1000
1 ≤ xi, yi ≤ 100
Гарантируется, что при любом угловом коэффициенте выше всех не могут проецироваться более двух точек.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | T. Chistyakov, A. Klenin | |||
Input file: | input.txt | Time limit: | 3 sec | |
Output file: | output.txt | Memory limit: | 64 Mb |
There are N points on a plane. Convex hull is such a convex polygon with the least possible area, that all the given points are either within its interior or belong to its border.
Let's say that one convex polygon is smoother that the other one if it's sharpest angle is more obtuse than the sharpest angle of the other one.
Your task is to make the convex hull of the given set of points as smooth as possible. To do it you are allowed to exclude no more than one point from the given set.
Output file must contain a single number: the sharpest angle (in radians) in the most smooth convex hull with absolute error less than 0.01.
3 ≤ N ≤ 1000
1 ≤ xi, yi ≤ 106
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|