Страница: 1 [Всего задач: 2]
Рассмотрим математический маятник, прикрепленный к началу координат
математической нитью. Начальное положение маятника (-r, 0). Если маятник
отпустить, то он начнет колебаться, описывая полуокружность. Теперь
представим себе, что в плоскость вбито несколько математических гвоздиков.
Движение маятника в этом случае будет более сложным, но, в конце концов, он
также начнет совершать некоторые периодические колебания.
Для нашего идеального математического мира считаются выполненными
следующие условия:
гвоздики и нить имеют нулевую толщину;
энергия маятника не теряется (т.е. трение отсутствует);
маятник никогда не сталкивается с гвоздиками (с ними входит в
соприкосновение только нить);
нить изгибается только при соприкосновении с гвоздиком.
Ваша задача состоит в том, чтобы промоделировать движение маятника и
вычислить длину установившейся орбиты.
Вниманию тех, кто боится физики! Единственный физический факт,
необходимый для решения этой задачи, таков: маятник никогда не поднимается
выше своей начальной высоты. Следовательно, маятник либо достигнет оси x,
либо будет крутиться вокруг некоторого гвоздика.
Входные данные
В первой строке входного файла записаны целое число N – количество
гвоздиков (0 ≤ N ≤ 500) и вещественное число r – длина нити. В каждой из
следующих N строк через пробел указаны координаты одного из гвоздиков.
Выходные данные
Выведите в выходной файл длину одного цикла периодической орбиты, по
которой станет качаться маятник. Учитывать расстояние, пройденное
маятником до того, как он вышел на эту орбиту, не нужно. Ответ должен быть
указан с точностью до двух знаков после десятичной точки.
Пример входного файла
2 16.0
3 -4
-3 -4
Пример выходного файла
87.66
[Ограда сада
]
|
|
Сложность: 4 |
Где-то в далеком царстве-государстве жил-поживал король. Он унаследовал
небольшое собрание редких и весьма ценных деревьев. Для того, чтобы
обезопасить свою коллекцию от злоумышленников, король приказал возвести
вокруг нее высокий забор. Главный королевский колдун был назначен
ответственным за исполнение этого поручения.
Увы! Колдун быстро обнаружил, что единственный подходящий материал
для постройки забора – это сами деревья. Другими словами, необходимо
срубить некоторые деревья для того, чтобы построить забор вокруг оставшихся.
Естественно, чтобы сберечь свою голову, колдун захотел минимизировать
стоимость срубленных деревьев. Он поднялся в свою башню и оставался там до
тех пор, пока не придумал наилучшее возможное решение.
Вы должны написать программу, решающую задачу, с которой столкнулся
главный королевский колдун. Постройте такое подмножество деревьев с
наименьшей суммарной стоимостью, что, срубив деревья из этого
подмножества, можно построить один забор, огораживающий все оставшиеся
деревья. Если существует более одного подмножества с минимальной
стоимостью, выберите то, в котором меньше деревьев.
Входные данные
В первой строке входного файла записано целое число N – количество
деревьев в королевском лесу (2 ≤ N ≤ 14). Деревья нумеруются
последовательными целыми числами от 1 до N. Каждая из последующих N
строк содержит четыре целых числа xi, yi, vi, li, описывающих очередное дерево.
(xi, yi) – это координаты дерева на плоскости, vi
– его стоимость, а li
– длина забора, который может быть построен из этого дерева. Все числа vi, li, а также
абсолютные величины xi
и yi
– целые числа из диапазона [0, 10000]. Считается,
что деревья имеют нулевой радиус.
Выходные данные
Первая строка выходного файла должна содержать номера деревьев, которые
необходимо срубить, разделенные пробелом. Во вторую строку выведите
излишек срубленного материала.
Пример входного файла
6
0 0 8 3
1 4 3 2
2 1 7 1
4 1 2 3
3 5 4 6
2 3 9 8
Пример выходного файла
2 4 5
3.16
Страница: 1 [Всего задач: 2]