Факультет математики и компьютерных наук, история


Всероссийская олимпиада школьников по информатике

областной тур
г.Иваново, 6 февраля 2002 г

Задачи

Общие замечания   Задача 1   Задача 2   Задача 3   Задача 4   Задача 5   Результаты

Условия задач, тесты, решения жюри и решения всех участников в виде одного самораспаковывающегося архива: TESTS.EXE (214К байт).

Общие замечания


Задача 1. "Автобусные маршруты" (42 балла)

Для решения транспортной проблемы в некотором городе до недавнего времени использовались 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
Решение
Задача 2. "Новобранцы" (28 баллов)
На первом построении вновь призванные в армию солдаты построились в шеренгу. После небольшого объяснения им правил выполнения в строю различных команд последовала команда "налево". В результате исполнения этой команды некоторые солдаты повернулись налево, а некоторые - направо Солдаты, которые оказались лицом к лицу со споим соседом, сразу поняли, что совершили ошибку. Чтобы ее исправить, каждый из них опять быстро повернулся на 180 градусов. Если названная ситуация затем опять повторялась, то есть, в каких-то парах солдаты оказывались лицом друг к другу, то такие солдаты снова поворачивались на 180 градусов. Эта процедура продолжалась до тех пор, пока в шеренге была хотя бы одна пара солдат, стоящих лицом друг к другу.

Требуется написать программу, которая по расположению солдат сразу после исполнения команды "налево" вычисляет число пар солдат, совершивших в последствии развороты на 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Конечное расположение солдат
Решение
Задача 3. "Ломаная" (35 баллов)
Маленький мальчик взял листок бумаги в клетку размером N*N клеток и нарисовал на нем замкнутую M-звенную ломаную с вершинами и узлах клеток. После этою он выписал квадраты длин звеньев ломаной в порядке их обхода по ломаной, а затем выкинул свой рисунок. Необходимо определить, существует ли хотя бы одна ломаная, соответствующая записанным мальчиком данным, или он ошибся в подсчете расстояний. Если такая ломаная существует, то нужно ее воспроизвести.

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

Технические требования:
Входной файл: 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
Решение
Задача 4. "Театр" (21 балл)

В театре 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
Решение
Задача 5. "Последовательность чисел" (28 баллов)

Рассмотрим бесконечную в обе стороны последовательность целых чисел 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
Решение

Результаты

Проверка работ происходила следующим образом. Жюри заготовило набор тестов - по 7 вариантов исходных данных для каждой задачи и некоторые bat-файлы и небольшие программки, позволяющие проверить верно ли найдено решение. Всю систему тестов вместе с решениями жюри и всех участников в виде одного самораспаковывающегося архива можно скачать здесь:
TESTS.EXE(214К байт).

Для проверки результатов работы, например, программы 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 Захаров Д.В. Ст. ВичугаСтаро-
вичугская
110 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

ИвГУ: Математический факультет. Главная страница