Задача A. Гистограмма

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

Условие

Гистограмма (или столбчатая диаграмма) — это способ графического изображения набора чисел, при котором каждое число изображается прямоугольным столбцом с высотой, пропорциональной значению числа.

По данным целым числам a1, a2, …, aN требуется построить гистограмму. Гистограмма должна состоять из N столбцов, i-й столбец должен изображаться прямоугольником высотой ai и шириной в 3 символа. Столбцы должны быть:

Промежуток между столбцами, а также поля слева, справа и сверху гистограммы должны составлять один символ. В основании (нижней строке) гистограммы промежутки и поля должны изображаться символом '-' (ASCII 45), все остальные промежутки и поля — символом '.' (ASCII 46).

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

Входной файл содержит число N, за которым следуют числа a1, a2, …, aN.

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

Выходной файл должен содержать max(ai) + 3 строк длиной 6 N + 1 символов каждая — изображение гистограммы.

Ограничения

1 ≤ N ≤ 100, 1 ≤ ai ≤ 100

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

Входной файл (input.txt) Выходной файл (output.txt)
1
2
1 6
.............
.......+---+.
.......|###|.
.......|###|.
.......|###|.
.......|###|.
.+---+.|###|.
.|###|.|###|.
-+---+-+---+-

Задача B. Смайликокомпрессор

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

Условие

Для изображения эмоций в различных электронных сообщениях часто используются последовательности символов, называемые "смайликами" (от англ. smile — улыбка). Например, последовательность :-) может обозначать радость или согласие, а :-( разочарование или огорчение.

Многие пользователи черезмерно увлекаются этими обозначениями, в результате чего появляются сообщения вроде 'Привет :-))))) давно не виделиcь :-(((('. Требуется написать программу, которая "сожмёт" все смайлики в сообщении в один.

Определим смайлик как последовательность символов ':-' (ASCII 58 и 45), за которыми следуют либо один или несколько символов ')', либо один или несколько символов '('. Все другие последовательности смайликами не являются. Количество скобок назовём интенсивностью смайлика. Например, смайлик :-))) имеет интенсивность 3.

По данной строке следует определить, сумму интенсивностей всех "радостных" (с символом ')') и сумму интенсивностей всех "грустных" (с символом '(') смайликов.

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

Входной файл содержит единственную (возможно пустую) строку — исходное сообщение.

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

Выходной файл должен содержать единственную строку:

Ограничения

Длина входной строки не превышает 10000 символов.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
;-) Hi! (:-):-((
:-(
2
:-(:-(Privet :-))) :-(
:-?

Задача C. Перевод длинных чисел

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

Условие

Дано неотрицательное целое число a, записанное в системе счисления по основанию p. Требуется перевести это число в систему счисления по основанию q. Для представления цифр больше 9 используются заглавные латинские буквы (A — 10, B — 11, …, Z — 35).

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

Первая строка содержит числа p q. Вторая строка содержит строку, представляющую число (a)p.

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

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

Ограничения

2 ≤ p, q ≤ 36, длина входной строки не превышает 1000 символов.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
2 10
10010
18
2
31 17
AF2J5
6DG3BE

Задача D. Бармаглот под одеялом

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

Условие

Мальчик Петя придумал страшного Бармаглота, хватающего детей. Когда Петя зашёл в свою комнату, чтобы ложиться спать, он увидел, что одеяло на кровати очень похоже на Бармаглота. Требуется по заданной форме одеяла и форме Бармаглота определить, может ли Бармаглот поместиться под одеялом, и, соотвественно, следует ли Пете испугаться и заплакать или спокойно пойти спать.

Одеяло и Бармаглот имеют форму ломаных, заданных целочисленными координатами вершин (x1, y1), (x2, y2), … (xN, yN) для одеяла, (u1, v1), (u2, v2), … (uM, vM) для Бармаглота. При этом xi + 1 > xi и ui + 1 > ui для всех i.

Чтобы спрятаться под одеялом, Бармаглот должен полностью под него поместиться, т.е. описывающая его ломаная должна целиком находиться ниже ломаной, описывающей одеяло. Касания ломаных разрешены.

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

Во входном файле расположены числа
N x1 y1 x1 y1xN yN
M u1 v1 u1 v1uM vM

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

Выходной файл должен содержать единственную строку CRY, если Бармаглот может поместиться под одеялом или SLEEP, если не может.

Ограничения

3 ≤ M, N ≤ 100, 0 ≤ xi, yi, ui, vi ≤ 10000, x1 = u1, xN = uM.

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

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

Задача E. Максимальная тройка

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

Условие

В данном двумерном целочисленном массиве a размером N × N требуется найти три элемента, сумма которых максимальна. При этом первый элемент должен быть соседним по горизонтали или вертикали со вторым, а второй — с третьим.

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

Входной файл содержит число N, за которым следует N2 чисел
a1,1 a1,2a1,N
a2,1 a2,2a2,N
  
aN,1 aN,2aN,N
 — элементы массива.

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

Выходной файл должен содержать единственное число — максимальную сумму. При N = 1 следует вывести единственный элемент матрицы.

Ограничения

1 ≤ N ≤ 2000, 0 ≤ ai,j ≤ 109,

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

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

Задача F. Потерявшиеся

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

Условие

Лабиринт размером N x N клеток состоит из стенок, обозначенных символом '#' (ASCII 35), и проходов, обозначенных символом '.' (ASCII 46). В различных клетках лабиринта находятся два путешественника, потерявшие друг друга. Каждый из них полагает, что сможет найти товарища, если будет двигаться по лабиринту в соответствии со своим планом. Первый путешественник на каждую секунду делает шаг вперёд на одну клетку, если это возможно, либо поворачивает направо, если впереди стена. Второй путешественник действует аналогично, но поворачивает налево.

Требуется определить, встретятся ли когда-нибудь путешественники, и, если да, то после скольки шагов. Первоначальные позиции путешественников заданы координатами (x, y) и направлением d — числом 1, 2, 3, 4 для севера, востока, юга и запада соответственно. Позиция (1, 1) находится в северо-западном углу лабиринта.

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

Первая строка содержит значения N x1 y1 d1 x2 y2 d2. Следующие N строк содержат по N символов каждая — описание лабиринта.

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

Выходной файл должен содержать единственное число — количество шагов до встречи, либо число −1, если встреча не состоится.

Ограничения

2 ≤ N ≤ 10, 1 ≤ x1, y1, x2, y2N.

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

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

0.419s 0.021s 25