Командная олимпиада по программированию

A. Башня степеней

Имя входного файла:

input. txt

Имя выходного файла:

output. txt

Максимальное время работы на одном тесте:

1 секунда

Максимальный объем используемой памяти:

64 мегабайта

В выражении вида a^b^c^d^…^g, где ^ обозначает возведение в степень, важен порядок выполнения операций. Например, (2^(3^2))=2^9=512, а ((2^3)^2)=8^2=64. Чтобы полностью задать порядок операций для n возведений в степень, требуется n пар скобок. Петя написал на доске выражение и правильно расставил в нем скобки. Хулиган Вася стер все закрывающие скобки. Помогите Пете восстановить выражение.

Формат входных данных

Входной файл содержит последовательность длины L <  состоящую из открывающих скобок, строчных латинских букв и символов возведения в степень. Последовательность начинается с «(», так как внешние скобки считаются обязательными.

Формат выходных данных

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

Примеры

input. txt

output. txt

((p^(q^a^(b^c

((p^(q^a))^(b^c))

(v^(e^((r^y^((l^(o^n^g

(v^(e^((r^y)^((l^(o^n))^g))))

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

Имя входного файла:

input. txt

Имя выходного файла:

output. txt

Максимальное время работы на одном тесте:

1 секунда

Максимальный объем используемой памяти:

64 килобайта

Дан массив А из N неотрицательных чисел. Расстояние между двумя элементами ai и aj массива определено как |ij|. Напишите программу, которая заменяет каждый нулевой элемент массива на ближайший ненулевой элемент. Если два ненулевых элемента находятся на одинаковом ближайшем расстоянии, то значение элемента массива остается равным нулю.

НЕ нашли? Не то? Что вы ищете?

Формат входных данных

В первой строке входного файла содержится одно целое число N (0 ≤ N ≤ 100). В следующей строке через пробел записаны N целых неотрицательных чисел массива А (0 ≤ ai ≤ 1000000).

Формат выходных данных

Выходной файл содержит N чисел – преобразованный массив.

Пример

input. txt

output. txt

6

C. Треугольник в прямоугольнике

Имя входного файла:

input. txt

Имя выходного файла:

output. txt

Максимальное время работы на одном тесте:

1 секунда

Максимальный объем используемой памяти:

64 килобайта

Точки (х1, у1), (х2, у2), (х3, у3), (х4, у4) – вершины прямоугольника, а точки (х5, у5),
(х6, у6), (х7, у7) – треугольника. Верно ли, что треугольник целиком содержится в прямоугольнике, и, если да, определить площадь области, принадлежащей прямоугольнику, но не принадлежащей треугольнику.

Формат входных данных

В первой строке входного файла записаны через пробел четыре пары чисел – координаты прямоугольника, а во второй строке, соответственно, три пары чисел – координаты треугольника (-100 ≤ хi, уi ≤ 100). Координаты фигур задаются в порядке обхода по часовой стрелке.

Формат выходных данных

Выходной файл содержит либо слово «YES» в первой строке и искомую площадь (с точностью до 3 знаков после запятой) – во второй, либо слово «NO». Слова «YES» или «NO» записываются прописными буквами.

Примеры

input. txt

output. txt

YES

18.000

4

5

NO

D. Фальшивые монеты

Имя входного файла:

input. txt

Имя выходного файла:

output. txt

Максимальное время работы на одном тесте:

1 секунда

Максимальный объем используемой памяти:

64 килобайта

Чему равно наибольшее число An монет одинакового достоинства, из которых при помощи n взвешиваний на рычажных весах без гирь можно выделить фальшивую монету и определить, тяжелее она или легче настоящих? Известно, что фальшивая монета одна.

Формат входных данных

Во входном файле записано одно число n (n £ 20).

Формат выходных данных

В выходной файл вывести одно число – An.

E. Делимость

Имя входного файла:

input. txt

Имя выходного файла:

output. txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 килобайта

Дана последовательность N (N < 10) цифр от 0 до 9. Получить все N-значные числа, составленные из элементов данной последовательности, которые делятся на 2009: если таковых нет, вывести соответствующее сообщение.

Формат входных данных

Входной файл содержит в первой строке целое число N, а во второй строке – N цифр, разделенных одним пробелом.

Формат выходных данных

Выходной файл должен содержать полученные числа по одному в каждой строке (в порядке возрастания), или же сообщение об их отсутствии (слово «NO», записанное прописными буквами).

Пример

input. txt

output. txt

5

NO

6

204918

421890

982401

F. Шифротекст

Имя входного файла:

input. txt

Имя выходного файла:

output. txt

Максимальное время работы на одном тесте:

1 секунда

Максимальный объем используемой памяти:

64 килобайта

Дан зашифрованный текст (шифротекст). Написать программу расшифровки текста, если известно, что он зашифрован с помощью шифра Цезаря с ключевыми элементами при использовании русского алфавита с 33 буквами.

Алгоритм шифра Цезаря с ключевыми элементами: берется ключевое число (k) и ключевое слово, из которого удаляются повторы букв. Затем, начиная с k-той позиции, записывают это ключевое слово под буквами исходного алфавита, а далее записывают оставшиеся буквы алфавита в естественном порядке. Шифровку получают, заменяя буквы шифруемого текста на соответствующие буквы нового алфавита.

Пример шифровки:

Необходимо зашифровать слово «ШИФРОВАНИЕ», если известно, что k = 15, ключевое слово «КЛЮЧ».

Новый алфавит при заданных ключевых элементах примет вид:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

Исходный алфавит

А

Б

В

Г

Д

Е

Ё

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

Новый алфавит

Р

С

Т

У

Ф

Х

Ц

Ш

Щ

Ъ

Ы

Ь

Э

Я

К

Л

Ю

Ч

А

Б

В

Г

Д

Е

Ё

Ж

З

И

Й

М

Н

О

П

Шифротекст: ЖЪГЧЛТРКЪХ

Формат входных данных

Входной файл содержит в первой строке ключевое число k (1<=k<=33), во второй строке – ключевое слово, в третьей строке – шифротекст, который может состоять из нескольких слов, разделенных знаками препинания и пробелами. Длины ключевого слова и шифротекста не превышают 255 символов.

Формат выходных данных

Выходной файл должен содержать исходное сообщение.

Пример

input. txt

output. txt

15

КЛЮЧ

ЖЪГЧЛТРКЪХ

ШИФРОВАНИЕ