Задача A. Фонари

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

Условие

На улице длиной в 100 метров установлено N фонарей высотой y1, y2, …, yN метров на расстоянии x1, x2, … xN метров от начала улицы. Форма отражателей такова, что свет каждого фонаря распространяется в пределах конуса с углом при вершине 90°.

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

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

  1. N ≤ 2

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

Во входном файле содержится число N, за которым следует N пар целых чисел x1 y1 x2 y2… xN yN.

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

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

Ограничения

1 ≤ N, yi ≤ 100, 0 ≤ xi ≤ 100.

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

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

Задача B. Гирлянда

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

Условие

Ваша программа должна вывести в выходной файл изображение гирлянды. Гирлянда состоит из N звеньев, каждое из которых имеет вид ромба, состоящего из символов '#' (ASCII 35) для нечётных звеньев, либо '*' (ASCII 42) — для чётных звеньев. Размер i-го звена задаётся целым числом Ai. Каждая сторона ромба размером Ai состоит из Ai + 1 символа.

Гирлянда должна быть изображена на фоне прямоугольника, заполненного символами '.' (ASCII 46).

Каждое звено, начиная со второго, расположено вертикально под предыдущим и "сцеплено" с ним, как изображено в примере.

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

Во входном файле находится целое число N, за которым следует N чисел A1 AN — размеры звеньев.

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

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

Ограничения

1 ≤ N ≤ 100, 1 ≤ Ai ≤ 100

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

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

Задача C. Модель Изинга

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

Условие

Модель Изинга используется в физике для описания твердого тела. Она использует представление кристаллической решетки, в узлах которой находятся атомы.

Рассмотрим плоскую прямоугольную решетку с N узлами по вертикали и M узлами по горизонтали (всего NM узлов). Каждый узел характеризуется своим спином, который может принимать значения +1 или 1.

Соседними считаются узлы решётки, смежные по горизонтали или вертикали. Назовём энергией решетки количество пар соседних узлов с различными спинами.

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

Энергия решетки, приведенной в примере, равна 13. После изменения спина левого верхнего узла и третьего узла во второй строке получим решетку с энергией 15.

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

В первой строке входного файла содержатся числа N и M. Далее следует N строк по M символов в каждой. Строки состоят из символов '+' и '-'. Символ '+' соответствует положительному спину, а '-'  — отрицательному.

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

В выходной файл выведите четыре числа: r1 c1 r2 c2  — координаты двух узлов, изменение спина в которых максимально увеличит энергию. ri  — номер строки узла, ci  — номер узла в его строке. Нумерация начинается с 1.

Ограничения

1 ≤ N, M ≤ 1000; N+M > 2;

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

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

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

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

Условие

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

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

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

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

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

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

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

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

Ограничения

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

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

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

Задача E. Важнейшая часть

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

Условие

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

Исходными данными для программы будет строка символов, содержащая пары тегов <i> ... </i>, <u> ... </u>, <b> ... </b>, ограничивающие выделенные различным образом подстроки. Теги могут повторяться и вкладываться друг в друга, например This <b>is <i>a <u>sample of <b>very</b></u> important</i> text</b>. Ваша программа должна найти подстроку, вложенную в наибольшее количество тегов. Если таких подстрок несколько, следует вывести самую левую из них. В приведённом примере ответом будет подстрока very.

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

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

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

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

Ограничения

Длина исходной строки не превосходит 10000 символов. Открывающие и закрывающие теги образуют правильную скобочную последовательность (каждому открывающему тегу соответствует парный закрывающий, и наоборот). Например, последовательность <i>a<u>b</i></u> не может встретиться во входном файле. Между открывающим и закрывающим тегом есть по крайней мере один символ.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
no selection
no selection
2
&amp;lt;b&gt;test&amp;lt;/b&gt;&amp;lt;b&gt;simple&amp;lt;/b&gt;
test

Задача F. Маршрутка

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

Условие

Маршрутное такси на P посадочных мест движется по линии с N остановками, пронумерованными от 1 до N в порядке следования такси. На остановках стоят очереди из пассажиров. Каждый пассажир имеет цель — попасть на некоторую остановку, расположенную дальше по маршруту.

На каждой остановке:

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

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

В первой строке входного файла содержатся числа N и P. В следующих N − 1 строках находятся числа Ki di,1… di,Ki — количество пассажиров на очередной остановке и цель каждого пассажира. (На конечной остановке пассажиры не садятся).

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

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

Ограничения

2 ≤ N ≤ 50, 1 ≤ P ≤ 20

0 ≤ Ki < P, i < di,j ≤ N

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

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

0.062s 0.005s 17