Задача A. CamelCase

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

Условие

При написании сложных программ важное значение имеет стандартизация стиля кодирования, в частности формата записи имён переменных. Часто используются следующие два стандарта для имён переменных, состоящих из нескольких слов:

  1. Слова записываются друг за другом через знак подчёркивания с маленькой буквы (например my_variable).
  2. Слова записываются друг за другом подряд, при этом каждое слово начинается с большой буквы (например MyVariable).

Требуется написать программу, переводящую имя переменной из одного стандарта в другой.

Рекомендуется рассмотреть частичные решения:

  1. Имя состоит из одного слова

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

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

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

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

Ограничения

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

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

Входной файл (input.txt) Выходной файл (output.txt)
1
x
X
2
ATest
a_test

Задача B. А + А + А...

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

Условие

При выводе на экран буква "А" выглядит следующим образом:

..#..
.#.#.
#...#
#...#
#####
#...#
#...#

Символом '#' (ASCII 35) обозначены чёрные пиксели, а символом '.' (ASCII 46) — пиксели, не изменяющие цвет при выводе буквы.

Экран размером X × Y заполнен белым цветом. В различные позиции экрана вывели N букв "А".

Требуется написать программу, которая по изображению на экране восстановит количество букв и координаты, в которые они выводились. Левый верхний пиксель экрана имеет координаты (0, 0). Никакая буква не выходит за границы экрана.

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

Первая строка входного файла содержит числа X Y. Следующие Y строк по X каждая описывают изображение на экране, причём символом '#' обозначены чёрные пиксели, а символом '.' — белые.

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

В выходном файле должно содержаться число букв N, за которым следует N пар чисел xi yi — координаты верхнего левого угла каждой буквы. Если существует несколько решений, вывести любое из них.

Ограничения

1 ≤ X, Y ≤ 100

0 ≤ N ≤ 104

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

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

Задача C. Ближайшая стенка

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

Условие

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

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

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

Входной файл содержит число N за которым идут N троек чисел xi yi di  — координаты i-й точки и расстояние до ближайшей стороны. Все числа целые.

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

Если решения не существует, то в выходной файл должно быть выведено число −1.

Если решение единственное, то в выходной файл должно быть выведено число 1, за которым следуют четыре целых числа x1 y1 x2 y2  — координаты двух противоположных вершин прямоугольника.

Если решений больше одного, то в выходной файл должно быть выведено число 0, за которым следуют четыре целых числа x1 y1 x2 y2  — координаты двух противоположных вершин любого прямоугольника, являющегося решением.

Ограничения

1 ≤ N ≤ 100, 0 ≤ xi, yi, di ≤ 10000

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

Входной файл (input.txt) Выходной файл (output.txt)
1
1
50 50 1
0 49 49 51 51
2
2
100 100 3 101 101 90
-1

Задача D. Ближайшее число - 1

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

Условие

Дан массив A, состоящий из N неотрицательных целых чисел.

Назовём правым (левым) соседом нулевого элемента ближайший к нему справа (слева) ненулевой элемент.

Требуется построить массив B, который получается из массива A заменой каждого нулевого элемента на его ближайшего соседа в массиве A. Если оба соседа отсутствуют либо расстояния до них равны, замена не производится (элемент остаётся нулевым).

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

Входной файл содержит число N, за которым следует N целых чисел — элементы массива A.

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

Выходной файл должен содержать N целых чисел — элементы массива B.

Ограничения

1 ≤ N ≤ 10000, 0 ≤ Ai ≤ 10000

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

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

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

Автор:А. Кленин   Ограничение времени: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
.............
.......+---+.
.......|###|.
.......|###|.
.......|###|.
.......|###|.
.+---+.|###|.
.|###|.|###|.
-+---+-+---+-

Задача F. Забор Хоттабыча

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

Условие

Прожив 1000 лет, Гассан Абдуррахман ибн Хоттаб решил заняться изучением математики. Пройдя тему "Кривые второго порядка", он захотел воспользоваться новыми знаниями на практике, а заодно вспомнить некоторые магические заклинания. В результате действий старика появился бесконечный забор, с высоты птичьего полёта имеющий вид параболы y = ax2 + bx + c. Пока Хоттабыч проводил свой эксперимент, его друг Волька сдавал экзамен по географии. После появления забора Хоттабыч понял, что забор может отделять Волькину школу от его дома, и Волька, возможно, больше никогда не сможет попасть домой.

Хоттабыч знает координаты дома Вольки (XH; YH) и координаты школы (XS; YS) и просит вас подсказать, сможет ли Волька вернуться домой. Также Хоттабыч знает, что забор не проходит ни через школу, ни через дом Вольки.

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

Во входном файле содержатся целые числа a b c XH YH XS YS

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

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

Ограничения

Все числа по модулю не превосходят 103.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
1 0 0
0 1
0 -10
NO
2
1 0 0 0 1 0 10
YES
3
-2 -8 -16
-1 -11 -4 -17
YES

Задача G. Изображение таблицы

Автор:VI Всероссийская командная олимпиада школьников по программированию   Ограничение времени:2 сек
Входной файл:table.in   Ограничение памяти:64 Мб
Выходной файл:table.out  

Условие

При разработке программ для просмотра веб-страниц одной из наиболее сложных задач является корректное отображение таблиц. Компания «Kozilla», в которой вы работаете, планирует разработать новую версию браузера «Waterrat» для работы в терминальном режиме, и просит вас написать фрагмент ядра отображения веб-страниц, ответственный за формирование структуры таблиц.

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

Таблица состоит из строк, каждая строка состоит из одной или нескольких ячеек, j-я ячейка i-й строки имеет ширину ai, j.

По заданным параметрам таблицы постройте символическое изображение ее структуры.

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

Первая строка входного файла содержит n — количество строк в таблице. Следующие n строк входного файла содержат описание строк таблицы.

Описание каждой строки включает число mi — количество ячеек этой строки, и mi целых чисел ai,1, ai,2, …, ai,mi — ширину каждой из ячеек строки.

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

Выведите в выходной файл символическое изображение структуры таблицы. Изображение i-й строки таблицы должно начинаться изображением горизонтальной линии, составленным из символов "+" (плюс) и "-" (минус). Затем должна следовать строка, содержащая пробелы и символы "|" (вертикальная черта). Первым символом строки должна быть вертикальная черта, затем ai,1 пробелов, затем вертикальная черта, затем ai,2 пробелов, и так далее, всего mi блоков пробелов. После последнего блока должна следовать вертикальная черта. После последней строки таблицы также должно следовать изображение горизонтальной линии. В изображении горизонтальной линии используйте символ "+", если сверху или снизу от этой позиции находится вертикальная черта, и "-" в противном случае. Горизонтальная линия должна иметь минимальную возможную длину, чтобы над каждым символом вертикальной черты следующей строки и под каждым символом вертикальной черты предыдущей строки были символы "+".

Ограничения

1 ≤ n ≤ 100, 1 ≤ mi ≤ 10, 1 ≤ ai, j ≤ 20

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

Входной файл (table.in) Выходной файл (table.out)
1
4
3 3 5 1
1 2
1 2
2 5 1
+---+-----+-+
|   |     | |
+--++-----+-+
|  |
+--+
|  |
+--+--+-+
|     | |
+-----+-+

Задача H. Марсианская лингвистическая реформа

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

Условие

Алфавит марсианского языка состоит из строчных латинских букв. Буквам a, e, i, o, u, y соответствуют гласные звуки, остальным — согласные.

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

Марсиане просят написать программу, переводящую слова из старого в новый форматы.

Например, если старое слово имело вид eeaaeeuinfaormaaiatoyuaoics, то новое слово будет таким: eeaaeeuinfaormaaiatoyuaoics informatics.

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

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

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

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

Ограничения

Длина слова находится в диапазоне от 1 до 100 символов.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
eeaaeeuinfaormaaiatoyuaoics
informatics
2
aeeaaayyaaauaaiaaiaacm
acm
3
bzzt
bzzt

Задача I. Марсианские суеверия

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

Условие

Недавно стало известно, что все марсиане (как и некоторые люди) боятся чисел 4 и 13. Поэтому в домах на Марсе квартиры и этажи пронумерованы так, что 4-ых и 13-ых квартир и этажей нет. Квартиры и этажи нумеруются подряд начиная с единицы, но после трёх следует пять, а после двенадцати — четырнадцать.

Марсиане часто путаются в такой нумерации квартир и этажей. Например, они не могут определить номер этажа, на котором находится интересующая их квартира.

Требуется написать программу, которая по данному количеству этажей марсианского дома N и количеству квартир на этаже M определяет, есть ли в нём квартира с номером K и, если есть, выводит номер этажа, на котором она расположена.

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

Во входном файле содержатся числа N M K.

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

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

Ограничения

1 ≤ N, M, K ≤ 109

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

Входной файл (input.txt) Выходной файл (output.txt)
1
7 4 14
3
2
4 5 21
5
3
4 5 27
-1
4
5 7 4
-1

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

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

Условие

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

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

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

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

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

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

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

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

Ограничения

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

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

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

Задача K. Форматирование таблицы

Автор:Зимние сборы 2005   Ограничение времени:2 сек
Входной файл:format.in   Ограничение памяти:64 Мб
Выходной файл:format.out  

Условие

Вам предлагается отформатировать таблицу, данную во входном файле.

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

Первая строка входного файла содержит несколько букв l,c,r. Их количество равно количеству столбцов в таблице. Каждая буква задает расположение текста в соответствующем столбце ( l значит, что текст сдвинут до упора влево, с — что текст расположен по середине, r — что текст сдвинут вправо). Далее следуют не менее двух и не более 100 строк данных, каждая из которых задает соответствующую строку таблицы. Каждая строка содержит несколько записей, разделенных амперсантом ('&') Количество записей в каждой строке равно количеству столбцов. Каждая запись должна располагаться в соответствующем столбце. Первая строка данных задает заголовок таблицы, а остальные — тело таблицы. Знак '&' не содержится в ячейках таблицы.

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

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

Ограничения

  1. длина любой строки входного файла не превышает 250 символов
  2. в таблице не более 100 строк
  3. в таблице не более 100 столбцов

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

Входной файл (format.in) Выходной файл (format.out)
1
lr
EXPRESSION&RESULT
2+2&4
2+2*2&6
+------------+--------+
| EXPRESSION | RESULT |
+------------+--------+
| 2+2        |      4 |
| 2+2*2      |      6 |
+------------+--------+
2
lcr
LEFT&CENTER&RIGHT
1&2&3
the&the&the
longest&longest&longest
kitten&kitten&kitten
blitz&blitz&blitz
+---------+---------+---------+
| LEFT    | CENTER  |   RIGHT |
+---------+---------+---------+
| 1       |    2    |       3 |
| the     |   the   |     the |
| longest | longest | longest |
| kitten  | kitten  |  kitten |
| blitz   |  blitz  |   blitz |
+---------+---------+---------+

0.866s 0.014s 33