Материалы XIII Республиканской командной олимпиады

реклама
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РС(Я)
CЕВЕРО-ВОСТОЧНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
ИМЕНИ М.К. АММОСОВА
ГАУ ДО РС(Я) «МАЛАЯ АКАДЕМИЯ НАУК РС(Я)»
Эффективная и слаженная
командная работа – залог успеха!
XIII РЕСПУБЛИКАНСКАЯ
КОМАНДНАЯ
ОЛИМПИАДА ШКОЛЬНИКОВ
ПО ПРОГРАММИРОВАНИЮ
17–21 марта 2016 г.
с. Чапаево
XIII Республиканская командная олимпиада школьников по программированию – с. Чапаево, 2016.
Сборник содержит условия задач XIII Республиканской командной олимпиады школьников по программированию и возможные варианты решений.
Олимпиада проводилась 17–21 марта 2016 г. на базе Малой академии наук
РС(Я) в с. Чапаево под Якутском. Участникам было предложено за пять часов
решить девять задач.
© Авторский коллектив, 2016
ОРГКОМИТЕТ
ХIII РЕСПУБЛИКАНСКОЙ КОМАНДНОЙ
ОЛИМПИАДЫ ШКОЛЬНИКОВ
ПО ПРОГРАММИРОВАНИЮ
ФЕДОРОВ Михаил Прокопьевич
проректор по педагогическому
образованию СВФУ
имени М.К. Аммосова – председатель
ЕГОРОВ Владимир Анатольевич
ректор Малой академии наук РС(Я) –
зам. председателя
ЛИ-ЦАЙ Мария Владимировна
главный специалист МО РС(Я)
МАКАРОВА Нюргуяна Леонидовна
начальник ОМО МАН РС(Я)
БУДИКИНА Людмила Евсеевна
проректор по УВР МАН РС(Я)
НИКОЛАЕВА Наталья Васильевна
зав. кафедрой теории и методики
обучения информатике СВФУ
имени М.К. Аммосова,
зав. кафедрой информатики МАН РС(Я)
НИКОЛАЕВ Василий Петрович
Президент Благотворительного фонда
имени Василия Николаева
по поддержке школьников, студентов
в области информатики
и программирования
СПОНСОРЫ
ХIII РЕСПУБЛИКАНСКОЙ КОМАНДНОЙ
ОЛИМПИАДЫ ШКОЛЬНИКОВ
ПО ПРОГРАММИРОВАНИЮ
ГЕНЕРАЛЬНЫЙ СПОНСОР
ООО «МАЙТОНА»
президент Александра Сергеевна Баишева
ГК «СИНЕТ»
генеральный директор
Арсен Григорьевич Томский
ФИЛИАЛ «САХАТЕЛЕКОМ»
ОАО «РОСТЕЛЕКОМ»
директор Алексей Витальевич Семенов
ООО «КОПИРТЕХСЕРВИС»
генеральный директор
Александр Тарасович Никифоров
ЖЮРИ
ХIII РЕСПУБЛИКАНСКОЙ КОМАНДНОЙ
ОЛИМПИАДЫ ШКОЛЬНИКОВ
ПО ПРОГРАММИРОВАНИЮ
Председатель:
Никифор Никитич ПАВЛОВ, к. ф.-м. н.,
доцент каф. ИТ ИМИ СВФУ имени М. К. Аммосова
Члены жюри:
Айтал Викторович ДЬЯКОНОВ,
студент 4 курса ИМИ
Владимир Семенович ЛЕВЕРЬЕВ,
ст. преп. каф. ИТ ИМИ
Александр Викторович ПАВЛОВ,
к. ф.-м. н., доцент каф. ИТ ИМИ
Георгий Егорович ПЕТРОВ,
студент 1 курса ИМИ
Григорий Александрович СПИРОВ,
студент 3 курса ИМИ
Арчылан Анатольевич ФЕДОРОВ,
аспирант ИМИ
Алексей Юрьевич ХОХОЛОВ,
студент 1 курса ИМИ
УЧАСТНИКИ
ХIII РЕСПУБЛИКАНСКОЙ КОМАНДНОЙ
ОЛИМПИАДЫ ШКОЛЬНИКОВ
ПО ПРОГРАММИРОВАНИЮ
Нюрбинский район, руководитель Петров Николай Николаевич
Босоева Эльвира
Захаров Алексей
Ефремов Вадим
Нюрбинский технический лицей им. А.Н. Чусовского
8 класс
7 класс
7 класс
Чурапчинский улус, руководитель Захаров Прокопий Прокопьевич
Дьячковский Николай
Ноговицын Николай
Оконешникова Майя
Чурапчинская гимназия им. С.К. Макарова
8 класс
9 класс
10 класс
Республиканский лицей, руководитель Данилов Михаил Николаевич
Мекумянов Семён
Гаврильев Дмитрий
Тихонов Алексей
Гуринов Айтал
Гуринов Илья
Гаврильев Валерий
Осипова Валентина
Яковлева Сандаара
Григорьева Дайаана
Республиканский лицей-интернат
Республиканский лицей-интернат
Республиканский лицей-интернат
10 класс
10 класс
10 класс
10 класс
10 класс
8 класс
10 класс
10 класс
10 класс
Сунтарский улус, руководитель Саввинов Игорь Семенович
Гаврильев Рубен
Амбросьев Никита
Николаев Антон
Титова Чэмэлиинэ
Алексеева Нина
Стручков Христофор
Алексеева Настя
Саввинова Айта
Мохов Эдуард
Сунтарский политехнический лицей-интернат
Сунтарский политехнический лицей-интернат
Сунтарский политехнический лицей-интернат
9 класс
9 класс
9 класс
8 класс
8 класс
7 класс
9 класс
9 класс
7 класс
Усть-Алданский улус, руководитель Васильев Антон Константинович
Васильев Денис
Васильева Камила
Назарова Альбина
Бярийинская СОШ им. В.Д. Лонгинова
11 класс
10 класс
10 класс
XIII Республиканская командная олимпиада
Хангаласский улус, руководитель Ковров Феликс Филиппович
Ермолаев Артур
Михайлов Валерий
Сивцев Артем
10 класс
10 класс
10 класс
Октемский лицей
г. Якутск, СОШ №26, руководитель Максимова Туйаара Васильевна
Андреев Тимур
Иванов Алексей
Максимова Анна
8 класс
8 класс
8 класс
СОШ №26 г. Якутска
г. Якутск, СОШ №17, руководитель Захаров Алексей Алексеевич
Слепцова Айыына
Николаев Сандал
Романов Уйгун
10 класс
10 класс
10 класс
СОШ № 17 г. Якутска
г. Якутск, Физико-технический лицей,
руководители Куличкин Никифор Николаевич, Романов Юрий Николаевич
Шинкарев Валентин
Андросов Максим
Обудов Владислав
Якутск-1:
Максимов Алексей
Мухин Дмитрий
Чебанов Костя
Беляев Владимир
Кусатов Стас
Решетников Алексей
Авдиевская Ева
Угарова Анастасия
Исакова Елизавета
Антонов Анатолий
Шевченко Егор
Бысыин Иван
Физико-технический лицей им. В.П. Ларионова
Физико-технический лицей им. В.П. Ларионова
Физико-технический лицей им. В.П. Ларионова
Физико-технический лицей им. В.П. Ларионова
Физико-технический лицей им. В.П. Ларионова
Физико-технический лицей им. В.П. Ларионова
Бярийинская СОШ им. В.Д. Лонгинова
10 класс
10 класс
10 класс
8 класс
11 класс
10 класс
8 класс
8 класс
8 класс
9 класс
9 класс
9 класс
7 класс
6 класс
11 класс
г. Якутск, Сборная пригородных школ,
руководитель Петров Пальмиро Пантелеймонович
Якутск-3:
Иванов Данил
Ноговицына Августина
Степанова Лилия
СОШ №12 г. Якутска
Хатасская СОШ им. П.Н. и Н.Е. Самсоновых
7
8 класс
10 класс
9 класс
Список участников
г. Якутск, Якутский городской лицей, руководитель Жиркова Марта Маратовна
Якутск-2:
Лебедев Антон
Ульянов Андрей
Главанарь Макар
Булатов Василий
Арменакян Карен
Попов Кирилл
Якутский городской лицей
10 класс
9 класс
9 класс
Якутский городской лицей
8 класс
8 класс
8 класс
Вне зачета
Угарова Анастасия
Исакова Елизавета
Михайлов Алексей
Тимофеева Анастасия
Физико-технический лицей им. В.П. Ларионова
Октемский лицей
8
9 класс
9 класс
9 класс
9 класс
Задачи
A. Покраска
На покраску поверхности параллелепипеда размера a × b × c ушло n грамм
краски. Окрашенный параллелепипед разбили на a × b × c одинаковых кубиков. Сколько грамм краски понадобится, чтобы покрасить все непокрашенные части кубиков?
Входные данные
В одной строке записаны через пробел целые положительные числа a, b, c, n
(1 ≤ a, b, c ≤ 1000, 1 ≤ n ≤ 1 000 000).
Выходные данные
Выведите ответ на задачу с точностью до 3 знаков после запятой.
Пример входного и выходного файлов
INPUT.TXT
OUTPUT.TXT
3 3 3 6
12.000
B. Выстрел
Мальчик Гена стреляет из рогатки. Гена стоит в точке (0, 0) и стреляет в цель.
Цель находится в точке (A, 0). При этом между Геной и целью в точке (B, 0)
стоит столб высотой h. На снаряд действует гравитация (g = 10 м/c2 ), поэтому траектория снаряда Гены представляет собою параболу (сопротивлением
воздуха пренебрегаем). Гена хочет попасть в цель так, чтобы снаряд коснулся столба. Максимальная начальная скорость, которую Гена может сообщить
снаряду, равна vm . Напишите программу, определяющую, сможет ли Гена это
сделать.
y
h
B
A x
Входные данные
В единственной строке входного файла через пробел записаны 4 вещественных числа: vm , A, B и h. Все длины даны в метрах, скорость в м/c.
Условия задач
Выходные данные
Если Гена сможет попасть в цель указанным способом, вывести “YES”, в следующей строке вывести два вещественных числа, с точностью до 4 знаков: v
и h — начальная скорость снаряда (в м/c) и максимальная высота траектории
снаряда (в метрах) соответственно. В противном случае вывести “NO”.
Ограничения: 0 < A < B < 1000, 0 < h < 100, 0 < vm < 100.
Пример входного и выходного файлов
INPUT.TXT
OUTPUT.TXT
10 4 2 4
YES
9.2195 4
C. Максимальный рейтинг
Дан массив из n натуральных чисел a1 , a2 , … , an и число k. Требуется найти составное число b с максимальным рейтингом, который вычисляется по
формуле:
r = |b − ak | × (|b − ak | mod 40000),
где |x| — абсолютное значение (модуль) числа x, через a mod b обозначен
остаток от деления числа a на b. Составное число — число, которое имеет
другой делитель, кроме 1 и себя. При равенстве рейтингов, выведите число
с меньшим индексом. Гарантируется, что в массиве есть хотя бы одно составное число.
Входные данные
В первой строке через пробел записаны n и k, во второй строке — n натуральных чисел. Ограничения: 2 ≤ n ≤ 50000, 1 ≤ ai ≤ 100000, 1 ≤ k ≤ 50000.
Выходные данные
Вывести число и рейтинг числа.
Пример входного и выходного файлов
INPUT.TXT
OUTPUT.TXT
5 2
2 3 4 5 6
6 9
D. Пёс Барбос
Пес Барбос привязан к цепи длиной d и может свободно передвигаться вдоль
нее. Цепь имеет два конца, которые закреплены на двух пнях с координатами (x1 , y1 ) и (x2 , y2 ). Хозяин Барбоса очень ленивый человек и не кладет корм
10
XIII Республиканская командная олимпиада
Барбоса в миску. Вместо этого он бросает n кусочков еды через забор. К сожалению, из-за длины цепи Барбос не может добраться до всeх кусочков
еды. Напишите программу, которая определит, сколько кусочков еды сможет сегодня съесть Барбос.
Входные данные
В первой строке файла через пробелы записаны 5 вещественных чисел x1 ,
y1 , x2 , y2 и d, а также натуральное число n ≤ 1000. В последующих n строках файла записаны по два вещественных числа, разделенных пробелом —
координаты очередного кусочка еды x, y.
Выходные данные
В выходной файл нужно записать количество кусочков еды, которые Барбос
сможет съесть.
Пример входного и выходного файлов
INPUT.TXT
3 0 -2 0 7 3
-3 0
-2 3
0 2
OUTPUT.TXT
2
E. Дискретная ёлка
Сергей хочет построить макет дискретной елки. Будем считать дискретной
елкой конструкцию, которая построена по следующим правилам:
1. Елка дискретная, поэтому растет тоже дискретно (изменения происходят мгновенно).
2. В первый год из семени вырастает ствол дерева единичной длины.
3. Далее ежегодно ствол вырастает на единицу, боковые ветви вырастают
на единицу и появляются две боковые ветви нулевой длины.
Сергей решил построить макет такой елки из n спичек единичной длины, но
он не знает, какого возраста елку он сможет построить. Естественно, Сергей
хочет построить максимально взрослую елку. Помогите ему.
11
Условия задач
Входные данные
Во входном файле задано единственное целое число n (1 ≤ n ≤ 1018 ).
Выходные данные
В выходном файле должно содержаться единственное целое число t — максимальный возраст елки, которую можно построить.
Примеры входного и выходного файлов
INPUT.TXT
OUTPUT.TXT
5
9
20
3
3
5
Примечание.
Для третьего примера n = 20, можно построить только елку 5-летнего
возраста, как показано на рисунке.
F. Футбол
Гена и Айсен играют «в футбол». Платон судит матч. Они дошли до серии
пенальти. Правила пенальти такие:
1. Игроки бьют по очереди: когда один стоит на воротах (вратарь), то другой бьет по мячу, затем они меняются местами. Всего каждый делает по
пять ударов.
2. Вратарь может прыгнуть только в одну сторону – налево (L), направо
(R), либо стоять на месте – в центре (C).
3. Игрок, исполняющий пенальти, может ударить только в одном из трех
направлений: в левую сторону (L), в центр (C) или в правую сторону (R).
4. Если вратарь прыгает в ту же сторону, куда летит мяч, он гарантированно его ловит.
Гена бьет первым. Как вратарь, Гена решил прыгать в таком порядке: налево (L), налево (L), стоит в центре (C), направо (R), направо (R). При ударе
12
XIII Республиканская командная олимпиада
Гена может смотреть в одну, а бить в другую сторону. Вратарь Айсен прыгает в ту же сторону, в которую смотрит Гена, поэтому Гена может обмануть
Айсена, ударив в другую сторону. Помогите Платону выявить победителя.
Входные данные
В первой строке записаны через пробел 5 пар заглавных латинских букв:
попарно направление удара Гены, и сторона, куда он смотрит. Во второй
строке 5 букв: направления ударов Айсена.
Выходные данные
В первой строке вывести два числа: очки Гены и очки Айсена, разделенные
двоеточием. Во второй строке, если выиграет Гена, вывести строку «GG», если
Айсен — «AA». При ничье вывести «DR».
Примеры входного и выходного файлов
INPUT.TXT
L L R R C C R R L L
С R R L С
OUTPUT.TXT
0:5
AA
G. Разумные сигналы
Астроном Айсен уверен в существовании внеземных цивилизаций. Когда команда телескопа Кеплера объявила об обнаружении планеты, похожей на
Землю и вращающейся вокруг звезды, похожей на наше Солнце, Айсен воспринял эту новость с большим воодушевлением. Он раздобыл запись сигналов, приходящих из этого сектора, в виде последовательности условных
букв, и решил поискать в ней сигналы, подчиняющиеся определенным закономерностям. Помогите ему для начала найти наиболее интересный периодический фрагмент записи.
Фрагмент записи называется периодическим, если он состоит из двух или
более подряд идущих копий одной и той же строки. Из двух периодических
фрагментов интереснее тот, что содержит большее число подряд идущих
повторов. Если два периодических фрагмента содержат одинаковое число
повторов, то интереснее тот, что длиннее. Если фрагменты содержат одинаковое число повторов и имеют одинаковую длину, то интереснее тот, что
встречается раньше.
Входные данные
В единственной строке входного файла записаны сигналы, закодированные
в виде последовательности латинских букв. Число букв не превышает 10000.
13
Условия задач
Выходные данные
Если в записи есть периодические фрагменты, выведите через пробел в одной строке три целых числа P, K, L — позицию P первого символа наиболее интересного фрагмента, считая с НУЛЯ, максимальное число K повторов
строки в фрагменте и длину L этой повторяющейся строки. Если периодических фрагментов в записи нет, выведите -1.
Примеры входного и выходного файлов
INPUT.TXT
ITSFULLOFSTARS
DABACDACDFFAF
DDADADCCCF
ABCDEF
OUTPUT.TXT
5 2 1
3 2 3
6 3 1
-1
H. Эвакуация
Крепость представляет собой сеть из N подземных бункеров, соединенных
равными по длине туннелями, по которым из любого бункера можно добраться до любого другого (не обязательно напрямую). Связь с внешним
миром осуществляется через специальные засекреченные выходы, которые
расположены в некоторых из бункеров.
Защитникам крепости понадобилось составить план эвакуации персонала на случай экстренной ситуации. Для этого для каждого из бункеров необходимо узнать, сколько времени потребуется для того, чтобы добраться до
ближайшего из выходов. Вам, как специалисту по таким задачам, поручено
рассчитать необходимое время для каждого из бункеров по заданному описанию крепости. Для вашего удобства бункеры пронумерованы числами от
1 до N.
Входные данные
В первой и второй строках входного файла заданы два натуральных числа —
количество бункеров N и количество выходов K (1 ≤ N ≤ 100000, 1 ≤ K ≤ N),
соответственно.
В третьей строке через пробел записаны K попарно различных чисел от
1 до N, обозначающих номера бункеров, в которых расположены выходы.
В четвертой строке содержится число M (1 ≤ M ≤ 100000) — количество
туннелей. В следующих M строках вводятся M пар чисел — номера бункеров,
соединенных туннелем. По каждому из туннелей можно двигаться в обе стороны. В крепости не существует туннелей, ведущих из бункера в самого себя,
зато может существовать более одного туннеля между парой бункеров.
14
XIII Республиканская командная олимпиада
Выходные данные
Выведите N чисел, разделенных пробелом — для каждого из бункеров минимальное время, необходимое чтобы добраться до выхода. Считайте, что
время перемещения по одному туннелю равно 1.
Примеры входного и выходного файлов
INPUT.TXT
OUTPUT.TXT
3
1
2
3
1 2
3 1
2 3
10
2
10 8
9
6 7
7 5
5 8
8 1
1 10
10 3
3 4
4 9
9 2
1 0 1
1 4 1 2 1 3 2 0 3 0
I. Пешеход
Пешеход находится у дороги и хочет перейти её целым и невредимым. Кроме того, он очень сильно спешит и желает сделать это как можно быстрее.
Для удобства введем прямоугольную систему координат. Пешеход находится в начале координат и должен дойти до точки с координатами (0, d). Он
может идти только прямолинейно и только по направлению к конечной точке, не совершая остановок посреди дороги. Скорость пешехода постоянна и
равна vp .
Транспортные средства в этом городе имеют прямоугольный вид. Они
могут двигаться только вдоль абсциссы. В ходе движения транспортные средства могут пересекаться.
15
Условия задач
Пешеход в начальный момент времени знает, что есть n транспортных
средств. Каждое транспортное средство характеризуется длиной, шириной,
начальной координатой правого верхнего угла прямоугольника, начальной
скоростью и постоянным ускорением. Скорость может быть как положительной, так и отрицательной. Если скорость положительна, то это значит, что
транспортное средство едет по направлению оси x, в противном случае оно
едет в обратном направлении. Ускорение всегда положительно и направлено по ходу движения транспортного средства.
По заданной информации найти ближайшее время начала движения пешехода, при котором он не будет сбит транспортным средством до достижения конечной точки. Пешеход считается сбитым, если во время перехода
он окажется внутри какого-нибудь транспортного средства.
y
(0, d)
(x, y)
l
w
v
(0, 0)
x
Входные данные
Первая строка входного файла содержит три числа n, d и vp , где n — количество транспортных средств, d — ордината конечной точки, vp — скорость
пешехода. В каждой из следующих n строк через пробел записаны числа l,
w, x, y, v и a — длина, ширина, координата правого верхнего угла, начальная
скорость и постоянное ускорение соответственно. Все координаты и размеры заданы в метрах. Скорость задана в м/c, ускорение — в м/с2 . Все числа
во входном файле целые. (0 ≤ N ≤ 105 , 1 ≤ d, vp , l, w ≤ 100, −1000 ≤ x, y ≤ 1000,
0 < |v| ≤ 104 , 0 ≤ a ≤ 100)
Выходные данные
Вывести ближайшее безопасное время начала движения, с точностью не менее 10−3 . Если решения не существует, вывести -1.
Примеры входного и выходного файлов
0
2
4
2
1
2
2
1
INPUT.TXT
1
4
-1 3 3 0
-1 1 1 1
OUTPUT.TXT
0
1.645751311
16
XIII Республиканская командная олимпиада
INPUT.TXT
1
2
2
2
2
1
2
3
1
1
OUTPUT.TXT
1
1 1 1 1
1
-2 1 1 0
0 2 1 0
-1
1
Решения
A. Покраска
Вес краски, необходимой для покраски одной грани кубика, очевидно, можно вычислить следующим образом:
q=
n
,
2(ab + bc + ca)
где в знаменателе стоит площадь поверхности параллелепипеда.
Допустим, что все кубики полностью не окрашены (т.е. n грамм краски
еще не потрачено). Тогда вес краски, необходимой для покраски всех кубиков, равен:
m = 6qabc.
Так как n грамм краски уже потрачено, вывести нужно величину m − n.
B. Выстрел
Запишем уравнения для координат снаряда от времени:
{ y =
x =
vy t −
vx t
2
gt
2
Пусть в момент времени tB снаряд касается вершины столба, а в момент времени tA достигает цели. Получаем:
gt2B
,
2
gt2
0 = v y tA − A ,
2
(1) h = vy tB −
B = v x tB
(2)
(3)
A = vx tA
(4)
17
Решения
2v
2Bv
Из (2) и (4) найдем tB = AB tA , а из (3) получим: tA = gy . Отсюда tB = Agy . Подставив это равенство в уравнение (1), найдем вертикальную компоненту начальной скорости:
vy = √
hgA2
.
2(AB − B2 )
Для горизонтальной компоненты из (4) получим
vx =
A
Ag
=
.
tA 2vy
Осталось проверить соблюдение ограничения v < vm для начальной скорости v = √v2x + v2y . Если скорость превышает ограничение, то выводим NO,
в противном случае выводим YES, а также скорость и максимальную высоту.
t
Максимальная высота достигается в момент времени tm = 2A . Подставив tm
в уравнение для координаты y, получаем ответ.
C. Максимальный рейтинг
1. Для каждого числа b из списка переходим к пункту 2.
2. Проверяем, является ли оно составным. Перебираем числа от 2 до целой части от квадратного корня числа b и смотрим на остаток от деления b на перебираемое. Если нашлось число, дающее нулевой остаток,
то b составное, переходим к пункту 3, в противном случае переходим к
пункту 1 для следующего b.
3. Находим рейтинг числа b по формуле
r = |b − ak | × (|b − ak | mod 40000).
Обновляем, если нужно, максимальный рейтинг до r.
3
4. Выводим максимальный рейтинг. Асимпотика решения будет O(n 2 ), что
в ограничениях задачи дает порядка 107 действий.
D. Пёс Барбос
Пёс Барбос может перемещаться вдоль цепи, которая закреплена на двух
пеньках. То есть Барбосу доступы точки двора внутри эллипса, в которых сумма расстояний до пеньков не превышает длины цепи d. Следовательно, для
решения задачи нужно для координат каждого кусочка еды определить сумму расстояний до обоих пеньков. Если эта сумма не превышает d, то нужно
увеличить счетчик. После проверки всех кусочков еды сохранить значение
счетчика как ответ.
18
XIII Республиканская командная олимпиада
E. Дискретная ёлка
Для решения данной задачи сперва рассмотрим количество спичек n, нужное для построения елки с возрастом t. Ствол дерева составляется из t спичек, а длина веток будет суммой (1 + 2 + 3 + … + t – 2) * 2. Следовательно,
n = t + (t–2)(t–1) = t2 –2t + 2.
Теперь рассмотрим задачу нахождения целого числа t такого, что t2 –2t+2
√ ≤n
при заданном n. Решим квадратное уравнение t2 –2t + 2 − n = 0: t = 1 ± √n–1.
Решением задачи будет максимальное целое t, не превосходящее 1 + n–1.
Стоит заметить, что надо использовать тип int64.
F. Футбол
Сначала посчитаем очки Гены. Для этого сравним каждую пару значений
направления взгляда и направления удара мяча Гены. Если они не совпадают, то присуждаем Гене одно очко. Потом посчитаем очки Айсена. Для этого
сравним значение направления мяча Айсена с заданными в условии направлениями прыжка Гены. Если они не совпадают, то присуждаем Айсену одно
очко. Выводим GG, если очков у Гены больше, чем у Айсена, если же у Айсена
больше, то выводим AA, а при совпадении выводим DR.
G. Разумные сигналы
Приведем одно из возможных решений. Будем перебирать символы строки,
пусть i — позиция очередного символа. Для каждого i, попробуем искать периодический фрагмент, перебирая в j все позиции дальше i. Будем запоминать найденный максимум повторов подряд идущих подстрок в переменной
M, длину максимально повторяющейся подстроки в переменной D. Перед
началом работы M = 1, D = 0.
...
S
i
T
A
R
S
j
T
A
R
...
j+L
Пусть L = j−i. Если подстрока длины L, начинающаяся в i-м символе совпадает с подстрокой такой же длины, начинающейся в позиции j (в примере на
рисунке подстрока STAR, L=4), то мы нашли периодический фрагмент. Проверим, есть ли дополнительные повторы в позициях j + L, j + 2L, и т. д. Проверим, не больше ли найденное количество повторов, чем M, а при равенстве
проверим, не больше ли L, чем D. Если ответ «да», обновим запомненный
максимум повторов M и длину подстроки D.
19
Решения
Для уменьшения перебора можно обрывать цикл по j в тот момент, когда
станет ясно, что M подстрок длины L уже не уместится в той части строки, что
начинается с i-го символа. Это позволит уменьшать количество итераций во
внутреннем цикле тем быстрее, чем больше было успешных итераций на
предыдущем шаге внешнего цикла.
H. Эвакуация
Создадим еще одну вершину, соединим её со всеми выходами. Для ответа
на вопрос задачи остаётся обойти граф в ширину из созданной вершины,
пометив вначале её расстоянием −1. Другой вариант: не создавать новую
вершину, а сразу добавить все выходы в очередь, пометить их расстоянием
0 и действовать дальше, как при поиске в ширину.
I. Пешеход
Для упрощения решения преобразуем задачу так, чтобы все транспортные
средства ехали в одном направлении. Для этого можно те транспортные средства, что едут справа налево, «отразить» относительно оси y. То есть, если
скорость отрицательна, то новыми параметрами такого транспортного средства будут x = −(x − l) и v = −v.
Также стоит уменьшить в ширину те транспортные средства, которые проходят через точку (0, d), так, чтобы они проходили, только касаясь точки (0, d).
Это не скажется на ответе, но упростит решение.
Целесообразно проверить, сбит ли уже пешеход. В таком случае вывести -1.
Далее отсекаем все транспортные средства, которые находятся выше конечной точки или ниже начальной точки, и те, которые уже проехали линию
нашего пути.
Для каждого из оставшихся транспортных средств надо найти недопустимый отрезок времени: если пешеход начнет двигаться в течение этого промежутка времени, то будет сбит данным транспортным средством. Для вычисления начала отрезка достаточно проверить, кто придет быстрее в точку
(0, y). Если приходит пешеход, то началом отрезка можно считать разницу
между временем прихода пешехода и транспортного средства. Если быстрее приходит транспортное средство, то началом отрезка можно формально
считать время −1. Конец промежутка вычисляется аналогично.
Особого внимания требуют те транспортные средства, которые собьют
пешехода, если он будет стоять на месте. Для них отрезки считать не надо.
Надо найти максимальное время, которое он может стоять на месте. Оно вычисляется аналогично, вычислению начала недопустимого отрезка в преды20
XIII Республиканская командная олимпиада
дущем случае. Из всех значений выбираем минимальное. Если есть такое
транспортное средство, которое собьет пешехода, даже если он начнет движение в начальный момент времени, то вывести -1.
Получить ответ можно отсортировав начала и концы отрезков по возрастанию. Важно заменить, что если время начала какого-то отрезка совпадает
с временем конца другого отрезка, то первой должна стоять отметка с концом отрезка.
Отсортировав отметки, достаточно пройтись по ним, считая закрывающиеся и открывающиеся отметки. В какой-то момент их количество станет
одинаковым, время этой отметки и будет ответом. Конечно, надо проверить,
что этот момент времени неотрицателен, и что ответ меньше значения, найденного для транспортных средств, которые сбивают пешехода, когда он будет стоять на месте.
21
-1 (
-2 (
(
10
11
я
-2 (
9
8
7
6
-1 (
-1 (
4
5
-2 (
XIII
3
2
№
1
я
Э
-3 (
-1 (
-2 (
я
,
я(
я,
я
я
,
,
,
,
,
,
,
,
К а а
А
,
)
)
)
я
)
)
)
)
ё ,
,
,
я)
я,
)
)
,
,
,
)
,
,
я,
,
А
00:56
+1
01:12
+1
-4
02:37
.
.
.
.
+
+3
+
+
+
+
+
+2
+
+
+9
+1
+1
-2
-14
-1
.
+
+3
+
02:33 00:55
+1
+
+1
+
01:09 01:30
+1
-2
.
+
-2
02:12
+
03:36 02:08
+4
02:47 03:39 01:09
+2
.
03:13 04:50 01:05
+
.
02:43 01:01 04:59 01:50
+3
02:01 03:20 02:26 00:48
+2
.
+3
+1
F
( )
02:16 01:17 02:45 01:38
+2
03:54
02:26
+1
E
00:42 01:11 01:39 02:00
+1
+1
.
.
.
-3
-2
+
D
01:21 00:21 01:57 01:04
+4
C
04:16
+
00:52
+
00:12
+1
01:01
+1
00:22
+2
-3
.
+
00:08
B
Ш
A
.
.
.
.
.
.
.
-2
.
.
.
G
.
.
.
.
.
.
.
-2
-1
03:13
+
03:55
+
H
.
I
.
.
.
.
.
.
.
.
.
-2
А
А
2
3
3
3
4
4
5
5
5
6
6
208
516
515
396
774
738
945
627
597
667
646
За ачи В
я
Ди
III
III
II
II
II
I
I
19
18
17
16
15
14
13
12
(
(
-5 (
-
-3 (
-3 (
я
,
№26,
№17,
,
,
,
,
,
,
(
4
(
1(
(
,
,
,
я,
)
2
(
)
)
)
,
)
ё ,
Э
,
)
я)
я)
я)
)
,
,
,
,
+2
-6
.
.
.
.
.
.
.
.
-2
+1
+5
.
.
-3
.
.
-3
02:40
+9
02:06
00:56
.
-2
.
.
.
.
.
.
-1
.
.
04:09
.
.
ку а
.
-3
.
.
.
-1
.
-9
+2
.
.
В ек
.
.
-2
.
.
.
.
.
03:54
+3
-2
-4
.
04:07
+1
02:28
+4
01:46
+5
04:13
+12
02:15
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
0
0
0
1
1
1
2
2
96
643
0
0
0
267
228
206
833
321
СОДЕРЖАНИЕ
Список участников олимпиады . . .
Задачи . . . . . . . . . . . . . . . . . . .
A
Покраска . . . . . . . . . .
B
Выстрел . . . . . . . . . .
C
Максимальный рейтинг
D
Пёс Барбос . . . . . . . .
E
Дискретная ёлка . . . . .
F
Футбол . . . . . . . . . . .
G
Разумные сигналы . . . .
H
Эвакуация . . . . . . . . .
I
Пешеход . . . . . . . . . .
Решения . . . . . . . . . . . . . . . . . .
A
Покраска . . . . . . . . . .
B
Выстрел . . . . . . . . . .
C
Максимальный рейтинг
D
Пёс Барбос . . . . . . . .
E
Дискретная ёлка . . . . .
F
Футбол . . . . . . . . . . .
G
Разумные сигналы . . . .
H
Эвакуация . . . . . . . . .
I
Пешеход . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
9
9
9
10
10
11
12
13
14
15
17
17
17
18
18
19
19
19
20
20
Скачать