Задача A. Суши Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Поросёнок Пётр недавно переехал в Японию и зашел поужинать в местный ресторан. В ресторане обнаружилась транспортная лента, доставляющая суши посетителям. Лента возит по кругу n продуктов. i-ый продукт (1 ≤ i ≤ n) имеет энергетическую ценность Ci . Лента движется в таком направлении, что после продукта C1 мимо посетителя проезжает продукт C2 и так далее. Соответственно, после Cn снова проезжает C1 . Поросёнок Петр хочет съесть подряд k ≤ n суши, максимизировав при этом суммарную энергетическую ценность съеденного. Исходные данные В первой строке даны натуральные числа n ≤ 10000 и k ≤ 1000. Во второй стороке через пробел даны n чисел Ci , 0 ≤ Ci ≤ 1000. Результат Выведите наименьший номера продукта, с которого Поросёнок Пётр должен начать свой ужин, чтобы достичь своей цели. Пример Исходные данные 3 1 9 1 5 3 2 9 1 5 Результат 1 3 1 Задача B. Факториал Ограничение времени: 0.2 cекунда Ограничение памяти: 16 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Вася Теркин учится в школе с углубленным изучением математики. На последнем занятии он узнал о существовании удивительного объекта k! = 1·2·3·. . .·k, который ему очень понравился. Вася захотел как можно больше узнать о его свойствах. Помогите Васе найти минимальное число k такое, что k! делится на заданное натуральное число N без остатка. Исходные данные В единственной строке записано число N (2 ≤ N ≤ 2 · 109 ). Результат Вывести единственное число k. Пример Исходные данные 36288 1024 17 Результат 9 12 17 2 Задача C. Складываем и умножаем Ограничение времени: 0.2 cекунда Ограничение памяти: 16 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Маленький Володя, только научившись складывать и умножать, обнаружил удивительную вещь: 2+2 = 2·2 = 4, но 2+3 = 5 не равно 2·3 = 6. Это удивление не оставляло Володю многие годы, и теперь, будучи учеником 10 класса школы с математическим уклоном, он сформулировал обобщение свойства «двух двоек». Набор их N натуральных чисел он назвал правильным, если сумма чисел этого набора равна их произведению. Ваша задача найти правильный набор из заданного количества чисел, не превосходящих 109 . Исходные данные В единственной строке записано одно число 2 ≤ N ≤ 30000. Результат Если правильный набор существует, вывести входящие в него числа в одну строку через пробел в произвольном порядке. В противном случае вывести слово “NO” Пример Исходные данные 2 3 Результат 2 2 1 2 3 3 Задача D. Следующее число Ограничение времени: 0.5 секунда Ограничение памяти: 16 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Для заданного натурального числа N найти минимальное число M , большее N , с той же, что у N , суммой цифр. Исходные данные В единственной строке записано число N (1 ≤ N ≤ 10100000 ). Результат Вывести единственное число M . Пример Исходные данные 524 1 999 Результат 533 10 1899 4 Задача E. Прогулка Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Император очень любит гулять. А ещё он очень любит цифру 5. По вечерам император гуляет по своему королевству, причём каждая его прогулка содержит ровно 5 перекрёстков (все перекрестки в прогулке различны). Королевство состоит из перекрёстков, некоторые из которых соединены дорогами. Помогите императору посчитать сколькими возможными способами ему удастся прогуляться. При этом два пути, проходящие через одни и те же перекрестки, но в противоположном порядке считаются одинаковыми (например пути abcde и edcba одинаковые). Исходные данные В первой строке записано число n – количество перекрёстков (5 ≤ n ≤ 1500). Затем идёт описание королевства. В i-ой строке содержится описание i-ого перекрёстка. Вначале записано число перекрёстков, с которым данный соединён дорогой, а затем перечислены сами эти перекрёстки. Никакой перекрёсток не может быть соединён с самим собой. Между любыми двумя перекрестками проходит не более одной дороги. В сумме в королевстве на более 1500 дорог. Результат Выведите ровно одно число — количество возможных прогулок. Пример Исходные данные 7 2 5 6 1 6 1 5 1 5 0 4 0 2 3 6 3 0 1 5 Результат 2 5 Задача F. Помоги Темному Властелину! Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Тёмный Властелин вновь готов захватить мир. Для этого он решил выковать ещё одно кольцо всевластья в виде идеальной окружности — больше и сильнее предыдущего — и отправить его своим прислужникам почтой на другой край Средиземья. Осталось только решить, какого размера должно быть новое кольцо. Чем больше будет его радиус, тем оно будет могущественнее, однако, чтобы кольцо было успешно доставлено, оно должно поместиться в почтовую коробку. Тёмный Властелин связался при помощи палантира с различными почтовыми отделениями и выяснил, какие коробки имеются в наличии в каждом из них. Каждое отделение сообщило ему описание своих коробок в виде набора восьми вершин. Тёмный Властелин знает, что на почте используются только кубические коробки, поэтому если какой-то набор вершин не является кубом - можно смело считать, что это описание прислали вражеские лазутчики в надежде притвориться почтовым отделением и перехватить кольцо. Если же набор вершин описывает куб, то Тёмный Властелин считает, что это настоящее и честное почтовое отделение. Из всех таких отделений Тёмный Властелин может выбрать то, которое предлагает коробки наибольшего размера. Какого максимального радиуса можно выковать новое кольцо, чтобы его можно было поместить в почтовую коробку и исполнить коварный план? Исходные данные В первой строке записано целое число N (1 ≤ N ≤ 1000) —- количество почтовых отделений. В следующих N строках записано по 24 действительных числа –– координаты вершин, сказанные почтовым отделением. Координаты записаны в порядке x1 , y1 , z1 , x2 , y2 , z2 , . . . , x24 , y24 , z24 Коробка с нулевыми сторонами — кубом не считается. Возможно, что какое–то отделения предложит координаты, из которых нельзя составить выпуклую трехмерную фигуру. Все координаты по модулю не больше 1000. Числа заданы с точностью до 8 знаков после запятой. Каждое почтовое отделение предлагает коробки только одного размера. Результат Если Темный Властелин сможет осуществить свой план, то выведите наибольший радиус кольца с не менее чем тремя знаками после десятичной точки. В противном случае выведите число -1. 6 Пример Исходные данные 2 0 0 0 0 1 0 0 0 2 2 0 0 2 1 0 0 1 2 2 0 2 2 1 2 0 0 0 0 2 0 0 3 0 3 0 0 1 0 0 2 0 0 1 2 0 0 1 0 7 Результат -1 Задача G. Плитка Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Вася хочет выложить у себя во дворе плитку. Двор Васи представляет собой квадрат площадью 20000 квадратных метров левый нижний угол √ √ которого находится в точке (0, 0), а правый верхний в ( 20000, 20000). К сожалению, у него есть только S (1 ≤ S ≤ 10000) квадратных метров плитки. Более того плитки могут иметь различный размер. Васю интересует вопрос – как ему выложить плитку, так чтобы площадь двора, заполненная плиткой, была максимальной. Каждая плитка является квадратом. Плитки нельзя разрезать. Плитки нельзя накладывать друг на друга. Все плитки укладываются параллельно осям координат. Исходные данные В первой строке содержится единственное число N (1 ≤ N ≤ 1000) — количество плиток у Васи. В следующей строке содержится N натуральных чисел, разделенных пробелом, — длины сторон плиток. Гарантируется, что суммарная площадь плиток не превосходит 10000. Результат В первой строке выведите общую площадь, которую Вася сможет покрыть плиткой и количество плиток M , которые ему понадобится для этого. В следующих строках выведите по 3 числа – номер плитки и координаты левого нижнего угла плитки. Выведите любой из возможных ответов. Пример Исходные данные 4 50 50 50 50 Результат 10000 4 1 0 0 2 0 50 3 50 0 4 50 50 8 Задача H. Хорошая строка Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Назовем строку A хорошей, если ее можно разложить в конкатенацию двух строк B = b1 b2 b3 b4 . . . bn и C = c1 c2 . . . c2n , таких что для любого i (1 ≤ i ≤ n), выполнено bi = c2n−2i+1 и bi = c2n−2i+2 . Например, строки abcccbbaa, bbb и aabbbaaaa — хорошие, а строки abcaabbcc и abccbbaa — нет. Дана строка S. Найдите ее наибольшую хорошую подстроку. Исходные данные В единственной строке входного файла содержится строка S из маленьких латинских букв длиной не более 100000 символов. Результат Выведите максимальную длину хорошей подстроки. Пример Исходные данные qweabcccbbaar Результат 9 9 Задача I. Перестановки в кондитерской Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Кондитер Иван Никифорович держит кондитерскую вблизи школы №2013 города Калачаевска. На полке рядом его рабочим местом в ряд стоят N горшочков с ингредиентами для приготовления любимого детского лакомства. Последовательность расположения горшочков очень важна, так как Иван точно помнит, из какого горшочка сколько ложек содержимого нужно взять, чтобы лакомство пришлось по вкусу каждому из M его постоянных клиентов. Но вкусы у ребят разные. Поэтому каждый из его клиентов, в то время, когда Иван занят приготовлением лакомства, переставляет горшочки так, чтобы получить лакомство, которое максимально согласуется с его вкусом, i-ый ребенок использует перестановку Pi = (pi1 , pi2 , . . . , piN ), располагая на j-ом слева месте на полке горшочек, который до этого стоял на месте pij . При этом ребята ничего не знают о проделках друг друга и думают, что каждый раз меняют исходное расположение горшочков. Кондитер Иван тоже не прост: он краем глаза видит происходящее и запоминает текущее расположение горшочков. Однако память у Ивана ограничена, и он может запомнить не более 100000 расположений горшочков. Когда количество различных расположений превысит это число, Иван будет вынужден объявить банкротство и закрыть заведение. Исходные данные В первой строке записаны через пробел два целых числа: N – количество горшочков и M – количество ребят, посещающих кондитерскую. 1 ≤ N ≤ 30, 1 ≤ M ≤ 10, N · M ≤ 60. В каждой из следующих M строк записаны через пробел по N различных чисел от 1 до N – перестановки Pi . Результат Вывести единственное число — количество различных расположений горшочков, случившееся в результате детских шалостей. Если же это количество превышает 100000, вывести единственное слово “Bankruptcy”. 10 Пример Исходные данные 7 2 2 3 4 5 6 7 1 7 6 5 4 3 2 1 9 2 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 8 9 7 Результат 14 Bankruptcy 11 Задача J. Извилистый маршрут Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) Дорога состоит из N полос. Каждая полоса разбита на несколько участков и для каждого участка заданы его длина и максимально разрешенная скорость. В любой момент разрешается перестраиваться на соседнюю полосу, причем перестроение занимает 1 минуту. Можно перестраиваться сразу на несколько полос, тогда перестроение из полосы i в полосу j занимает |i − j| минут. Во время перестроения никакого продвижения вдоль полос не происходит. Требуется найти минимальное время прохождения дороги, причем стартовать и финишировать разрешается на любой полосе. Исходные данные В первой строке расположено единственное целое число N , 1 ≤ N ≤ 30. Далее следует N блоков информации, каждый из которых описывает одну полосу по порядку слева направо. i-ый блок начинается с целого числа Ki – количества участков на i-ой полосе. Следующие Ki строк содержат описания участков в порядке от старта к финишу — по 2 целых числа, разделенные пробелом, Li,j –– длина j-го участка в км, 1 ≤ Li,j ≤ 1000, и Vi,j –– ограничение скорости на этом участке в км/час, 5 ≤ Vi,j ≤ 200. Общее количество участков не превышает 10000. Результат Вывести минимальное время прохождения маршрута в формате часы:минуты:секунды с погрешностью не более 1 секунды. Пример Исходные данные 3 2 12 25 88 50 3 25 100 25 20 50 100 3 8 155 27 90 65 40 Результат 1:12:06 12 Задача K. Рыцари Ограничение времени: 1 секунда Ограничение памяти: 64 Мегабайта Ввод: стандартный поток ввода (stdin) Вывод: стандартный поток вывода (stdout) На заседание Круглого стола пришли n пар враждующих между собой рыцарей. Теперь они хотят посчитать количество способов сесть за круглый стол, места которого пронумерованы, так, чтобы враги не сидели рядом. Поскольку число способов может быть довольно большим, они хотят посчитать хотя бы остаток от деления этого числа по модулю 123456. Исходные данные В первой строке через дано натуральное число n ≤ 25. Результат Выведите число способов рассадить 2n рыцарей согласно условию по модулю 123456. Пример Исходные данные 1 2 Результат 0 8 13