Для решения транспортной проблемы в некотором городе до недавнего времени использовались N (N<=100) автобусных маршрутов. Каждым маршрут начинался на одном из M (M<=200) площадей и там же заканчивался. В процессе проезда по маршруту автобус мог несколько раз проезжать одну и ту же площадь, но не мог проезжать более одного раза по одной и той же улице в том же самом направлении.
В определенный момент местные власти решили сократить количество автобусных маршрутов в городе до одного. По их мнению, должен был остаться лишь один маршрут, который проходил бы по всем улицам, по которым раньше проходили автобусные маршруты, причем в том же направлении. Если по каким-либо улицам автобусы ездили в обоих направлениях, то и новый маршрут должен проходить по этим улицам в обоих направлениях По тем улицам и в тех направлениях, по которым раньше автобусы не ездили, новый маршрут проходить не должен.
Требуется написать программу, которая для заданных исходных данных
определяет требуемый местным властям автобусный маршрут.
Технические требования:
Входной файл: INPUT.TXT
Выходной файл: OUTPUT.TXT
Ограничение по времени тестирования: 5 секунд на один тест.
Формат входных данных:
Входной файл INPUT.TXT состоит из следующей последовательности
строк. Первая строка содержит число N - количество автобусных
маршрутов. Каждая из последующих N строк служит для описания
соответствующего автобусного маршрута и содержит сначала число
k (k<=1000), определяющее количество элементов маршрута,
а затем k+1
чисел, задающих номера площадей, которые последовательно проезжает
автобус на этом маршруте. При описании маршрута всегда задаются номера
первой и последней площади маршрута, причем они всегда совпадают.
Формат выходных данных:
Выходной файл OUTPUT.TXT должен содержать либо описание нового
маршрута в том же формате, что используется во входном файле,
либо одно число 0, если организовать требуемый маршрут не удастся.
Пример файла входных данных:
3 6 1 2 5 7 5 2 1 4 1 4 7 4 1 5 2 3 6 5 4 2Пример файла выходных данных (для приведенного выше входного файла):
15 2 5 4 2 3 6 5 7 4 1 2 1 4 7 5 2Решение
Требуется написать программу, которая по расположению солдат сразу после исполнения команды "налево" вычисляет число пар солдат, совершивших в последствии развороты на 180 градусов в соответствии с вышеописанной процедурой.
Технические требования:
Входной файл: INPUT.TXT
Выходной файл: OUTPUT.TXT
Ограничение по времени тестирования: 5 секунд на один тест
Формат входных данных:
Входной файл INPUT.TXT состоит из двух строк. В первой строке
этого файла записано число N (1<=N<=30000) - количество солдат в
шеренге. Во второй строке содержится последовательность из N символов,
каждый из которых может быть либо символом <, либо символом >
(символ < означает солдата, повернувшегося налево, символ > -
солдата, повернувшегося направо).
Формат выходных данных:
Выходной файл OUTPUT.TXT должен содержать либо одно число -
количество развернувшихся пар, либо слово NO, если процесс бесконечен.
Пример файла входных данных:
6 >><<><
Пример файла выходных данных (для приведенного выше входного файла):
7
В таблице 1 для этого примера приведены расположения солдат в
шеренге после очередного завершения разворотов на 180 градусов
соответствующих пар солдат.
Таблица 1
Расположение солдат | Количество пар, которые должны развернуться | Комментарий |
>><<>< | 2 | Расположение солдат сразу после исполнения команды "налево" |
><><<> | 2 | Расположение солдат после первого завершения разворотов соответствующих пар |
<><><> | 2 | Расположение солдат после второго завершения разворотов соответствующих пар |
<<><>> | 1 | Расположение солдат после третьего завершения разворотов соответствующих пар |
<<<>>> | Общее количество развернувшихся пар - 7 | Конечное расположение солдат |
Требуется написать программу, которая определяла бы возможность восстановления ломаной по заданной последовательности квадратов длин ее звеньев, и в случае положительного ответа вычисляла координаты всех вершин ломаной.
Технические требования:
Входной файл: INPUT.TXT
Выходной файл: OUTPUT.TXT
Ограничение по времени тестирования: 5 секунд на один тест
Формат входных данных:
Входной файл INPUT.TXT состоит из двух строк. В первой строке
содержатся два целых числа:
N - размер бумаги в клетку (1 <= N <= 15 );
М - количество звеньев в ломаной (3 <= M <= 20 );
Вторая строка содержит последовательность из M целых чисел,
являющихся квадратами длин звеньев ломаной.
Формат выходных данных:
В случае наличия решения данной задачи выходной файл OUTPUT.TXT
должен состоять из М строк, в i-ой строке которого содержатся
координаты вершин ломаной Xi и Yi, где
Xi, Yi - целые числа и
0 <= Xi <=N, 0 <= Yi <=N.
Порядок записи координат вершин ломаной в
строках должен соответствовать порядку записи квадратов длин звеньев
ломаной во входном файле.
В случае наличия нескольких решений следует найти хотя бы одно из
них. Если по исходным данным ломаную восстановить не возможно, то
выходной файл должен содержать сообщение "Нет решения".
Пример файлов входных и выходных данных:
INPUT.TXT OUTPUT.TXT 8 4 0 1 13 29 37 5 3 3 8 1 2 0 INPUT.TXT OUTPUT.TXT 8 4 Нет решения 1 1 1 2Решение
В театре N мест, пронумерованных целыми числами от 1 до N. Некоторые из зрителей опоздали на спектакль, поэтому после третьего звонка те зрители, которые имели билеты на неудобные места, пересели на более удобные. Опоздавшие зрители, которые пришли уже после третьего звонка, садились на первое попавшееся свободное место.
В антракте один из опоздавших зрителей решил сесть на свое место. Если его место до этого было занято, то тот, кто там сидел, пересаживался на свое место. Если и там кто-то уже сидел, то и этот зритель также вынужден был вернуться на свое место. И так далее.
Поскольку в театр попали только зрители, имевшие на руках билеты, то начавшийся в антракте процесс пересаживания зрителей обязательно заканчивался. Необходимо посчитать, сколько человек в результате такого пересаживания были вынуждены поменять на свои места.
Требуется написать программу, которая вычисляет
количество зрителей, поменявших свои места из-за опоздания одного
зрителя.
Технические требования:
Входной файл: INPUT.TXT
Выходной файл: OUTPUT.TXT
Ограничение по времени тестирования: 5 секунд на один тест
Формат входных данных:
Входной файл INPUT.TXT состоит из трех строк. В первой строке
содержится целое число N ( 1 <= N <= 30000) - количество мест в зале.
Вторая строка содержит последовательность из N целых чисел,
разделенных пробелами, где первое число определяет номер места в
билете у зрителя, который занял место с номером 1, второе - номер
места в билете у зрителя, который занял место с номером 2, и так
далее. Если место было свободно, то соответствующее число рано 0.
В третьей строке содержится одно число - номер места в билете у
опоздавшего зрителя, который в антракте решил пересесть на свое место.
Формат выходных данных:
Выходной файл OUTPUT.TXT должен содержать одно число -
количество зрителей, поменявших свои места в антракте, включая
опоздавшего зрителя.
Пример файлов входных и выходных данных:
INPUT.TXT OUTPUT.TXT 10 3 0 2 5 3 4 0 0 0 0 0 4Решение
Рассмотрим бесконечную в обе стороны последовательность целых чисел Fi, в которой для любого целого i элемент Fi+2 вычисляется с использованием следующего условия Фибоначчи: Fi+2 = Fi+1+Fi. Пусть заданы два различных члена этой последовательности - Fi и Fj с соответствующми номерами i и j, а также некоторое целое число n. Необходимо восстановить элемент этой последовательности Fn, соответствующий номеру n.
Требуется написать программу, которая по заданным числам i, Fi, j, Fj, n вычисляет искомый элемент Fn описанной выше последовательности.
Технические требования:
Входной файл: INPUT.TXT
Выходной файл: OUTPUT.TXT
Ограничение по времени тестирования: 5 секунд на один тест
Формат входных данных:
Входной файл INPUT.TXT содержит в одной строке разделенные
пробелом следующие числа:
i, Fi, j, Fj, n.
Для этих чисел справедливы следующие ограничения:
-1000<= i, j, n <=1000;
-2000000000 <Fk<=2000000000 для всех k, удовлетворяющих
условию
min(i,j,n) <= k <= max(i,j,n).
Формат выходных данных:
Выходной файл OUTPUT.TXT должен содержать искомое число Fn
Пример файлов входных н выходных данных:
INPUT.TXT OUTPUT.TXT 3 5 -1 4 5 12Решение
Для проверки результатов работы, например, программы TSK99_03.EXE (решение 3-й задачи 99-м участником), exe-файл помещаем в каталог TST_3 и запускаем командный файл TST_ALL.BAT с аргументом - именем exe-файла, то есть:
TST_ALL.BAT TSK99_03.EXEКомандный файл последовательно подставляет в файл input.txt очередной вариант исходных данных, запускает exe-файл и проверяет файл output.txt. Результаты проверки дописываются в файл RESULT.TXT. Таким образом, после завершения работы TST_ALL.BAT в файле RESULT.TXT оказываются результаты прогона всех семи тестов. Количество очков, даваемых за задачу делится на 7, успешное выполение каждого теста дает участнику соответствующее количество баллов.
Основная проблема при таком подходе - зависание программ, написанных участниками, но с этим можно справиться.
Если участник набрал 0 очков, это не означает, что он ничего не сделал. У некоторых верный результат выводится не в файл output.txt, а на экран. Хотя задача "почти" решена, баллов за такое решение не начисляется. Среди других обидных ошибок отметим неверный формат выходных данных, например, 1e8 вместо 100000001, ввод данных с клавиатуры и некоторые другие.
Резлультаты проверки помещены в следующей таблице.
Код | ФИО | Город | Школа | Класс | Баллы за задачи | Сумма | Место | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |||||||
26 | Захаров Д.В. | Ст. Вичуга | Старо- вичугская | 11 | 0 | 16 | 35 | 12 | 28 | 91 | 1 |
02 | Варков А.А. | Кинешма | 1 | 11 | 24 | 12 | 25 | 12 | 12 | 85 | 1 |
38 | Алисов А.В. | Иваново | 21 | 11 | 0 | 4 | 25 | 15 | 24 | 68 | 2 |
33 | Лаптев М.Ю. | Кинешма | 17 | 11 | 0 | 16 | 0 | 15 | 20 | 51 | 3 |
21 | Сухинин А.А. | Иваново | 22 | 11 | 0 | 16 | 0 | 18 | 16 | 50 | 3 |
09 | Закреев А.Я. | Кохма | 5 | 9 | 6 | 20 | 0 | 9 | 12 | 47 | поощр |
14 | Королев Н.А. | Иваново | 36 | 10 | 0 | 16 | 15 | 12 | 0 | 43 | поощр |
54 | Тихомиров П.А. | Китово | 11 | 0 | 16 | 10 | 12 | 0 | 38 | поощр | |
17 | Батулин А.А. | Фурманов | 1 | 11 | 0 | 20 | 0 | 15 | 0 | 35 | поощр |
23 | Соганов М.И. | Иваново | 22 | 11 | 0 | 20 | 0 | 15 | 0 | 35 | поощр |
03 | Гулаев А.В. | Иваново | 36 | 11 | 0 | 4 | 0 | 12 | 16 | 32 | поощр |
18 | Жульков А.С. | Иваново | 23 | 10 | 0 | 16 | 0 | 15 | 0 | 31 | поощр |
12 | Сычев А.В. | Иваново | 33 | 11 | 0 | 20 | 0 | 9 | 0 | 29 | |
08 | Аржаков Д.А. | Кохма | 5 | 10 | 0 | 8 | 0 | 12 | 8 | 28 | |
15 | Лазарев И.В. | Иваново | 30 | 10 | 0 | 16 | 0 | 0 | 0 | 16 | |
27 | Трофимов В.П. | Ст. Вичуга | Старо- вичугская | 11 | 0 | 8 | 0 | 18 | 0 | 26 | |
24 | Бабанов Д.В. | Шуя | 8 | 11 | 0 | 16 | 0 | 9 | 0 | 25 | |
44 | Печенин А.А. | Каменка | Каменская | 9 | 0 | 20 | 0 | 3 | 0 | 23 | книга |
16 | Коновалов А.С. | Фурманов | 1 | 10 | 0 | 0 | 0 | 21 | 0 | 21 | |
11 | Логинов А.С. | Иваново | 14 | 11 | 0 | 0 | 0 | 15 | 0 | 15 | |
13 | Кашинцев А.А. | Иваново | 67 | 11 | 12 | 0 | 0 | 0 | 12 | ||
45 | Баскаков А.Е. | Каменка | Каменская | 10 | 0 | 0 | 0 | 12 | 0 | 12 | |
35 | Соколов Д.Е. | Заволжск | 1 | 11 | 0 | 0 | 0 | 3 | 0 | 3 |