Задача 1. Кот-проводник

Автор:М. Спорышев   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  

Условие

Путешествуя по зазеркалью, Алиса набрела на поле, разделенное дорожками на N × M клеток. Дорожки также проходят вокруг границ поля. Назовем узлом точку пересечения двух дорожек. Рядом с Алисой в воздухе висит Чеширский Кот, который говорит ей, в какую сторону идти. Алиса передвигается по дорожке от одного узла к другому в направлении, указанном котом, останавливается и ждет следующего указания.

Если при выполнении очередной команды требуется выйти за границу поля, то вместо ее выполнения Алиса стоит на месте, ожидая следующей команды.

Через некоторое время кот растаял в воздухе, оставив растерянную Алису в каком-то узле поля. Алиса просит сообщить, сколько раз ей нужно перейти от узла к узлу, чтобы как можно быстрее дойти до выхода.

Узлы поля нумеруются от 0 до N по горизонтали слева направо, и от 0 до M по вертикали снизу вверх, то есть нижний левый узел имеет координаты (0, 0). Исходная позиция девочки —– узел с координатами (0, 0), а выход находится в узле с координатами (N, M).

Формат входного файла

В первой строке входного файла содержатся целые числа N M. Во второй строке входного файла содержится список команд кота для Алисы, состоящий из букв l, r, u, d, где u —– вверх, d —– вниз, l —– влево, r —– вправо.

Формат выходного файла

В выходном файле должно содержаться одно число —– минимальное количество переходов, которое нужно пройти от текущей позиции Алисы до выхода.

Ограничения

1 ≤ N, M ≤ 1000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
4 3
rru
4
2
3 3
ururuu
1

Задача 2. Древнее сложение

Автор:И. Бураго   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Цивилизация майя использовала для записи натуральных чисел двадцатиричную систему счисления. Число обозначалось последовательностью двадцатиричных цифр, упорядоченных от старших разрядов к младшим.

Каждая цифра представлялась с помощью трёх символов, имевших значения:

Комбинация этих символов являлась корректной записью цифры, если: Например, цифра три записывалась как ..., а цифра двенадцать — как ..||.

Требуется по двум заданным в записи майя числам определить их сумму и представить в той же записи.

Формат входного файла

Входной файл состоит из двух строк, в каждой из которых находится по одному натуральному числу в записи майя.

Символ «ракушка» обозначается '*' (ASCII 42), «точка» — '.' (ASCII 46), «черта» — '|' (ASCII 124). Разряды отделяются друг от друга пробелом (ASCII 32).

Формат выходного файла

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

Ограничения

Оба числа не превосходят 109.

Строки во входном файле содержат от 1 до 255 символов.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
.
..
...
2
.|
....|
|||
3
.. | .||
| ..||
.. .|| ...

Задача 3. Неправильное сложение

Автор:Рекомендации   Ограничение времени:2 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Володя написал программу, которая складывает в столбик два числа. К сожалению, он не разобрался, как правильно переносить единицу из одного разряда в следующий. Поэтому программа стала выполняться следующим образом. Сначала она складывает последние цифры обоих чисел и записывает результат, как в случае, если он однозначный, так и в случае, если он двузначный. Затем программа складывает предпоследние цифры обоих чисел и результат сложения приписывает слева к результату предыдущего сложения. Далее процесс повторяется для всех разрядов. Если в одном числе цифр меньше, чем в другом, то программа размещает нули в соответствующих разрядах более короткого числа.

Федя хочет доказать Володе, что его способ сложения не обладает свойством ассоциативности. В частности, Федя утверждает, что существуют три числа, для которых важен порядок, в котором их складывают. Федя привел даже пример трех таких чисел.

Требуется написать программу, которая поможет Феде и Володе определить, верно ли утверждение, что, складывая заданные три числа в разном порядке, можно получить разные суммы.

Формат входного файла

Входной файл содержит целые числа a b c.

Формат выходного файла

В первую строку выходного файла необходимо вывести слово YES, если данные три числа можно сложить разными способами и получить разные суммы. В противном случае, необходимо вывести слово NO.

В последующих строках выходного файла необходимо вывести все возможные суммы, которые можно получить, складывая числа a, b и c. Суммы следует выводить по одной на строке, в порядке их возрастания и без лидирующих нулей.

Ограничения

1 ≤ a, b, c ≤ 106

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
30 239 566
YES
7945
71215
2
643 733 553
NO
18129

Задача 4. Замена скобок: выполнение алгоритма

Автор:А. Жуплев   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Рассмотрим последовательность из открывающихся и закрывающихся круглых скобок. Назовём такую последовательность скобочной.

Рассмотрим следующий алгоритм: на каждом шаге выбирается подстрока скобочной последовательности и все скобки в ней заменяются на противоположные, т.е. все символы '(' в этой подстроке заменяются на ')', а все символы ')' — на '('.

Требуется написать программу, которая по входной скобочной последовательности длиной L и описанию алгоритма из N шагов выведет результат его выполнения.

Формат входного файла

В первой строке входного файла содержится исходная последовательность.

Во второй строке содержится число N.

В каждой из последующих N строк содержится по два числа li ri, задающих позиции первого и последнего символа подстроки, в которой на i-ом шаге меняются скобки.

Формат выходного файла

В выходном файле должна содержаться единственная строка — результат работы алгоритма.

Ограничения

1 ≤ N, L ≤ 105

1 ≤ li ≤ ri ≤ L

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
(((((
1
1 5 
)))))
2
((())(()
3
1 8
2 6
4 7
)(((()((

Задача A. Пересечение двух прямых

Автор:StdAlg   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:128 Мб
Выходной файл:output.txt  

Условие

Прямая a проходит через точки A1 (aX1; aY1) и A2 (aX2; aY2). Прямая b проходит через точки B1 (bX1; bY1) и B2 (bX2; bY2).

Требуется найти точку пересечения прямых a и b или установить что прямые параллельны.

Формат входного файла

Во входном файле содержаться восемь целых чисел — aX1, aY1, aX2, aY2, bX1, bY1, bX2, bY2

Формат выходного файла

Выходной файл должен содержать:

Ограничения

0 ≤ |aXk|, |aYk|, |bXk|, |bYk| ≤ 105

A1 ≠ A2

B1 ≠ B2

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
0 0  2 2  1 1  3 3
-1
2
0 0  1 1
2 3  5 6
0
3
1 1
3 5
-1 5
8 -1
2.000000000 3.000000000

Задача B. Точка в треугольнике

Автор:Известные задачи   Ограничение времени:2 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Вам даны координаты вершин треугольника лежащего на плоскости, а также координаты точки. Следует определить, лежит ли точка внутри или снаружи треугольника. Гарантируется, что точка не может лежать на границе треугольника.

Формат входного файла

Входной файл содержит координаты вершин треугольника (x1, y1), (x2, y2), (x3, y3), а также координаты точки (x, y). Координаты - целые числа.

Формат выходного файла

Выходной файл должен содержать слово YES, если точка находится внутри треугольника, или NO, если точка не находится внутри треугольника.

Ограничения

 − 1000 ≤ x1, y1, x2, y2, x3, y3, x, y ≤ 1000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
5 5 0 -2 -2 0 0 0
YES

Задача C. Поездка на Хэллоуин

Автор:А. Жуплев   Ограничение времени:2 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Владивостокский программист приглашает коллегу к себе домой в гости на празднование Хэллоуина.

Оба программиста живут за городом. Их дома расположены в точках с координатами (XA; YA) и (XB; YB).

В этом районе есть только одна асфальтированная дорога, представимая в виде отрезка с координатами начала (XS; YS) и конца (XE; YE). Дорога является платной: за любой въезд на дорогу (проезд по произвольному участку дороги или только пересечение — не имеет значения) взимается плата в размере CR. Остальная местность занята полями, которые (в связи со скорым Хэллоуином) сплошь засажены тыквами. При движении на автомобиле по полю взимается плата в размере CF за каждый километр пути — ущерб за раздавленные тыквы.

Помогите программисту добраться к другу с минимальными затратами.

Обратите внимание, при сколь угодно малом приближении к дороге плата за въезд на неё не взимается. Смотрите пример №3.

Формат входного файла

Во входном файле содержатся десять целых чисел: XA YA XB YB XS YS XE YE CF CR

Формат выходного файла

Выходной файл должен содержать единственное число — минимальные затраты при перемещении из A в B с абсолютной ошибкой не более 10 − 3.

Ограничения

 − 103 ≤ XA, YA, XB, YB, XS, YS, XE, YE ≤ 103

1 ≤ CF ≤ 103

1 ≤ CR ≤ 106

Дома программистов находятся в разных точках и не находятся на дороге

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
1 1 2 2 0 3 3 0 1 1
2.414213562373095
2
1 5 4 0
-2 -2 10 10
1 2
7.656854249492381
3
10 10 25 19
15 13 20 16
1 1000000
17.492855684535900

Задача D. Столкновение шариков

Автор:А. Кленин   Ограничение времени:4 сек
Входной файл:input.txt   Ограничение памяти:200 Мб
Выходной файл:output.txt  

Условие

По горизонтальной плоской поверхности катятся два шарика радиуса R метров каждый. В начальный момент времени шарики имеют координаты центров (x1, y1) и (x2, y2) метров, а также проекции скоростей на координатные оси (dx1, dy1) и (dx2, dy2) метров в секунду соответственно.

Требуется найти время в секундах, спустя которое шарики столкнутся, или определить, что этого не произойдёт.

Формат входного файла

Входной файл содержит вещественные числа R x1 y1 dx1 dy1 x2 y2 dx2 dy2.

Формат выходного файла

Выходной файл должен содержать вещественное число — время до столкновения, с точностью не менее 3 значащих цифр, либо  − 1, если столкновения не произойдёт.

Ограничения

1 ≤ R ≤ 1000,  − 1000 ≤ x1, y1, dx1, dy1, x2, y2, dx2, dy2 ≤ 1000,
(x1 − x2)2 + (y1 − y2)2 > 4 R2

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
1
0 0 10 0
50 0 -10 0
2.4

Задача E. Пеленг НЛО

Автор:А. Кленин   Ограничение времени:5 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Два радара, расположенные в точках с координатами (0, 0) и (100, 0), обнаружили неопознанный объект. По таинственной причине, связанной, возможно, с внеземной природой объекта, радары оказались способны определить только направление на объект (пеленг), но не расстояние до объекта. Пеленг измеряется в градусах, против часовой стрелки, начиная от направления "на восток" (т. е. пеленг второго радара относительно первого равен 0°, пеленг первого радара относительно второго — 180°).

Требуется найти координаты НЛО или определить, что это невозможно.

Формат входного файла

Во входном файле содержатся вещественные числа a и b, разделенные пробелами.

Формат выходного файла

В выходном файле должны содержаться два вещественных числа, x и y, представляющие координаты объекта с точностью до 4 знаков после запятой. Если определить координаты невозможно, следует вывести два числа 0 (нуль).

Ограничения

0 ≤ a, b ≤ 360

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
45.1 135.0
49.9127 50.0873
2
135.0 45.0
0 0

Задача F. Точка Ферма-Торричелли

Автор:StdAlg   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Для заданных трёх точек A, B, C найти такую точку O, что AO + BO + CO — минимально.

Формат входного файла

Во входном файле содержатся целые числа XA YA XB YB XC YC — координаты точек A, B, C соответственно.

Формат выходного файла

Выходной файл должен содержать два числа XO YO — координаты точки O с точностью до 3-х знаков после запятой.

Ограничения

0 ≤ |XA|, |YA|, |XB|, |YB|, |XC|, |YC| ≤ 105

Никакие две точки не совпадают

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
4 2 0 0 2 2
2 2
2
-2 -3 1 3 4 -2
1.30120904214632 -0.720188590098661

0.909s 0.015s 33