Задача A. Astrological prediction

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

Условие

Астролог Тимофей считает год счастливым, если его номер состоит из различных последовательных цифр. Например, ближайший такой год наступит в 2031-м. По номеру года определите, через сколько лет наступит счастливый год?

Формат входных данных

Единственная строка входных данных содержит натуральное число n — номер года.

Формат выходных данных

Выведите одно неотрицательное целое число — ответ на вопрос задачи.

Ограничения

1 ≤ n ≤ 9876543210

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

Стандартный вход Стандартный выход
1
2023
8
2
2031
0

Задача B. Bricks in the wall

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

Условие

Пусть имеется набор из n двумерных кирпичей произвольной ширины Wi и единичной высоты.
Из них требуется построить стену шириной L максимально возможной высоты (но не более 5),
задействовав при этом минимально возможное число кирпичей.

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

Переворачивать кирпичи нельзя — все они должны сохранять горизонтальное положение.

Формат входных данных

Во входных данных указано число n, за которым следует ровно n целых чисел Wi.
Далее записано число L, задающее ширину слоя.

Формат выходных данных

Выходные данные должны содержать последовательность из номеров кирпичей,
расположенных в порядке формирования слоев:
вначале идут кирпичи 1-го слоя,
за ними 2-го и так далее.
При этом полагается, что кирпичи нумеруются,
начиная с нулевого.

Ограничения

0 < Wi ≤ L ≤ 20, 0 < n ≤ 100

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

Стандартный вход Стандартный выход
1
8
1 2 5 1 4 1 3 1
5
4 7 1 6 2
2
7
1 2 5 5 2 3 3
6
5 6 0 3
3
6
1 1 1 1 1 1
7

Задача C. Counting ones

Автор:A. Usmanov   Ограничение времени:1 сек
Ввод / вывод:интерактивный   Ограничение памяти:256 Мб

Условие

Данная задача является интерактивной. Ваша программа будет взаимодействовать с программой жюри путем отправки и приема сообщений определенного вида.

У жюри есть двумерная матрица N строк на M столбцов заполненная числами, где каждое число может быть либо 1, либо 0. Строки имеют нумерацию с 1 по N сверху вниз, столбцы — с 1 по M слева направо.

Ваша программа может делать запросы вида "? Xi Yi Ai Bi", где i — номер запроса, Xi, Yi — координаты левого верхнего угла прямоугольника, номера строки и столбца соответственно, а Ai, Bi — размеры сторон прямоугольника, количество строк и столбцов соответственно. В ответ на запрос программа жюри сообщит о количестве единиц в прямоугольнике из запроса.

Каждый из прямоугольников должен целиком лежать внутри матрицы, то есть должны выполняться следующие неравенства:

1 ≤ Xi, Ai ≤ N и 1 ≤ Yi, Bi ≤ M

Xi + Ai − 1 ≤ N и Yi + Bi − 1 ≤ M

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

min(A1, B1) < min(N, M) и max(A1, B1) < max(N, M)

min(Ai, Bi) < min(Ai − 1, Bi − 1) и max(Ai, Bi) < max(Ai − 1, Bi − 1) для i > 1

Требуется определить количество единиц в матрице, сделав любое количество запросов. Гарантируется, что значения чисел в матрице определены заранее и не зависят от запросов.

Формат входных данных

В первой строке входных данных записаны целые числа N и M — размеры матрицы.

Протокол взаимодействия

Чтобы сделать i-й запрос, ваша программа должна вывести "? Xi Yi Ai Bi", где Xi, Yi — целые числа, координаты левого верхнего угла прямоугольника, номера строки и столбца соответственно, а Ai, Bi — целые числа, размеры сторон прямоугольника, количество строк и столбцов соответственно.

После запроса программа жюри отвечает вашей программе целым числом S — количеством единиц в прямоугольнике из запроса.

Когда ваша программа определила ответ на задачу, она должна вывести "! S", где S — целое число, количество единиц в матрице. После вывода ответа программа должна завершиться.

Если ваша программа сделает недопустимый запрос, то она получит вердикт "Presentation error".

Каждый запрос и вывод окончательного результата должен быть одиночной строкой заканчивающейся одиночным переводом строки (\n). Буфер вывода необходимо сбрасывать после каждой строки:

Язык C++ Pascal Java Python
Код cout.flush() flush(output) System.out.flush() stdout.flush()

Ограничения

10 ≤ N, M ≤ 100

0 ≤ S ≤ 104

Пояснение к примерам

Матрицы из примеров представлены на картинке.

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

Стандартный вход Стандартный выход
1
11 13

34

0

0

? 1 1 10 12

? 1 11 11 3

? 10 1 2 10

! 34
2
10 10

38

28

23

16

13

5

3

3

0

? 1 2 9 9

? 3 1 8 8

? 4 2 7 7

? 2 4 6 6

? 5 5 5 5

? 3 7 4 4

? 8 8 3 3

? 1 1 2 2

? 10 10 1 1

! 44

Задача D. Doubly-periodic world

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

Условие

Ученые Флатландии обнаружили, что вселенная, в которой они живут, топологически подобна поверхности тора.

Это значит, что по каждой из осей координат x и y выполняется условие периодичности с периодом Lx и Ly соответственно.
Иначе говоря, точки с координатами (x + u ⋅ Lx, y + v ⋅ Ly) при любых целых u и v являются тождественными.

В целях научного эксперимента из точки с координатами (0, 0) выпускается луч, заданный вектором D⃗ = (dx, dy).
Требуется определить минимальное расстояние, которое пройдет луч прежде чем попасть в исходную точку.

Результат следует записать в единицах измерения, равных длине вектора D⃗,
т.е. найти наименьшее λ 0 такое, чтобы при сдвиге на вектор λ ⋅ D⃗ можно было попасть в исходную точку.

Полученное число должно быть представлено в виде несократимой дроби: λ  = αβ.

Формат входных данных

В начале входных данных хранится число n, за которым следует n запросов,
каждый из которых задается набором целых чисел: Lxi, Lyi, dxi и dyi.

Формат выходных данных

Выходные данные должны содержать значения αi и βi,
полученные в ответ на каждый i-й запрос.

Ограничения

1 ≤ (Lxi, Lyi) ≤ 106,  − 106 ≤ (dxi, dyi) ≤ 106, |dxi| + |dyi| > 0,
1 ≤ n ≤ 105.

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

Стандартный вход Стандартный выход
1
4

17 18 -6 -8
15 16 6 8
13 14 4 0
10 12 0 2
153 2
10 1
13 4
6 1

Задача E. Erasing numbers

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

Условие

В Научно-исследовательском институте, где работает Тимофей, продолжается успешное исследование ряда натуральных чисел. Каждый день его коллеги открывают всё новые и новые свойства этой последовательности, и Тимофей старается от них не отставать. Сегодня Тимофей, как обычно, выписал на доске в ряд натуральные числа от 1 до n и пытается ответить на вопрос, возможно ли стереть в середине списка несколько (не менее одного) чисел, идущих подряд, чтобы сумма оставшихся чисел слева равнялась сумме оставшихся чисел справа?

Формат входных данных

Единственная строка входных данных содержит натуральное число n.

Формат выходных данных

Выведите в первой строке неотрицательное целое число — количество различных способов стереть числа.

Ограничения

3 ≤ n ≤ 105

Пояснения к примерам

В первом примере дано n = 5. Перечислим все способы стереть числа в середине ряда:

Ни в одном из них нужное свойство не достигается.

Во втором примере дано n = 21. Перечислим все хорошие способы стереть числа в середине ряда:

В первом списке сумма чисел слева и справа равны 21, во втором — 78. Всего два способа.

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

Стандартный вход Стандартный выход
1
5
0
2
21
2

Задача F. Flag of Chita

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

Условие

Флаг Читы представляет собой полотнище прямоугольной формы, разделённое на четыре элемента. Отношение ширины флага к его длине 2:3. В древковой части флага — равнобедренный треугольник жёлтого цвета, который имеет основание равное ширине флага (вертикальный размер полотнища), и высоту, равную половине его длины (горизонтальный размер полотнища). К треугольнику примыкают равновеликие полосы зелёного, белого и красного цветов.

Состав цветов флага отражает цвета герба городского округа «Город Чита», неся традиционное геральдическое значение:

На координатной плоскости нарисовали флаг Читы высотой h так, как показано на рисунке (в первой четверти, левый нижний угол совпадает с началом координат). Определите цвет точки с указанными координатами.

Формат входных данных

Три строки входного файла содержат три натуральных числа, записанных через пробел: h — высота флага, а также x и y — координаты точки. Гарантируется, что h делится нацело на 12.

Формат выходных данных

Выведите Green, White, Red или Yellow — ответ на вопрос задачи. Выведите Line, если точка лежат на границе флага или на линии, разделяющей две или три цветные области.

Ограничения

12 ≤ h ≤ 109

0 ≤ x ≤ 3 × h2

0 ≤ y ≤ h

Пояснение к примеру

Смотри рисунок.

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

Стандартный вход Стандартный выход
1
12
17
7
White

Задача G. Grading

Автор:Евгений Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

В классе учится N человек. Для удобства будем нумеровать их от 1 до N.

Однажды учитель по информатике дал очень сложную контрольную работу. Естественно, есть люди, которые ее спишут, а есть люди, которые будут делать ее сами и получат максимальную оценку (в школе K-бальная система оценивания, то есть ученик может получить оценку, которая равна натуральному числу на промежутке от 1 до K). Но если человек с номером U спишет у человека с номером V, и у человека V балл равен X, то у человека U балл будет равен X − 1 (если X = 1, то человек получит оценку 1, так как оценки меньше нет).

На контрольную давалось не очень много времени, из-за этого могло получиться так, что первый ученик списал у второго, второй списал у третьего, ..., T-ый списал у первого. В таком случае у всех школьников оставались пустые листы ответов, а следовательно, они получили оценку 1.

Вам известно, кто у кого списывал. Помогите классу и скажите, кто какую оценку получит!

Формат входных данных

В первой строке вводятся натуральные числа N и K — количество учеников и число системы оценивания. В следующей строке находится последовательность A из N натуральных чисел, i-ое число означает то, что i-ый школьник списал у Ai-ого.

Формат выходных данных

В единственной строке выведите N чисел, где i-ое число показывает, какую оценку получил i-ый школьник.

Ограничения

1 ≤ K ≤ N ≤ 105, 1 ≤ Ai ≤ N

Пояснение к примеру

Первый списал у второго, второй списал у четвертого, четвертый списал у первого. Эти 3 ученика получили оценку 1. Третий сделал работу сам и получил оценку 3, пятый списал работу у третьего и получил 2.

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

Стандартный вход Стандартный выход
1
5 3
2 4 3 1 3
1 1 3 1 2

Задача H. Historical search

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

Условие

Молодой историк Вася в рамках своей диссертационной работы занимается сопоставлением записей из хранящихся в архиве документов.

Каждый документ охватывает определенный промежуток времени и содержит информацию о произошедших за это время событиях.

Васю интересует, каким образом освещалось одно и то же событие в различных источниках.

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

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

Формат входных данных

В начале входных данных хранится натуральное число N, за которым следует 2 × N целых чисел,
задающих границы временного интервала [Ai, Bi] для каждого из документов.

Далее следует число M и ровно M запросов, содержащих время события Cj.

Формат выходных данных

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

При этом полагается, что нумерация документов начинается с нуля.

Ограничения

Гарантируется, что суммарное число документов на выходе не превосходит 106.

 − 106 ≤ Ai ≤ Bi ≤ 106,  − 106 ≤ Cj ≤ 106, 1 ≤ N ≤ 2 ⋅ 104, 1 ≤ M ≤ 105

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

Стандартный вход Стандартный выход
1
6
-1  0
-1 -1
-1  0
 4  4
 2  3
 3  3

8
-1
 0
 2
 3
 1
-2
 4
 5
3 0 1 2
2 0 2
1 4
2 4 5
0
0
1 3
0

Задача I. Image correction

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

Условие

Матрица фотоаппарата представляет собой прямоугольную таблицу размерности [n × m], состоящую из светочувствительных элементов (ячеек). В момент съемки каждой ячейке такой таблицы ставится в соответствие вещественное значение Xi j, указывающее ее состояние (интенсивность).

Известно, что при считывании состояния отдельно взятой ячейки к нему добавляется взвешенная сумма состояний окружающих ее ячеек, которые формируют упорядоченный набор слоев (см. рисунок). При этом каждый последующий слой имеет в два раза меньшее влияние, чем предыдущий.

Коэффициент влияния каждой такой ячейки на полученное значение равен 1 / (2l ⋅ Nl), где l — номер содержащего ее слоя, Nl — число ячеек в l-м слое.

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

Для заданной матрицы Y, полученной в результате измерений, и радиуса воздействия k требуется восстановить исходные значения Xi j.

Значения фиктивных ячеек (лежащих за пределами матрицы) полагаются равными нулю.

Формат входных данных

В начале входных данных хранятся три натуральных числа: n, m и k.
Далее следует матрица результатов измерений Y, записанная в строчном формате.

Формат выходных данных

Выходные данные должны содержать восстановленную матрицу X.
Все значения должны быть указаны с точностью до 5-го знака после запятой.

Ограничения

0 ≤ Yi j ≤ 10, 0 < n ⋅ m ≤ 40 000, 0 < k ≤ 6

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

Стандартный вход Стандартный выход
1
9 6 3
0.26620 1.51042 0.59606 2.85301 0.76968 3.75000
1.51042 0.67130 3.09027 1.05324 4.38657 0.90856
0.59606 3.09027 1.13426 4.57754 1.29629 5.21412
2.88194 1.08217 4.61805 1.42940 5.60763 0.91435
0.87384 4.51388 1.43518 5.72916 1.08796 1.78819
4.13773 1.31944 5.72916 1.18055 2.03704 0.58449
0.98958 5.53819 1.12847 2.10648 0.76389 2.69097
4.98842 0.92592 1.98495 0.76389 2.95717 0.61343
0.49190 1.63773 0.54398 2.69097 0.61343 3.59375
0.00000 1.11111 0.00000 2.22222 0.00000 3.33333
1.11111 0.00000 2.22222 0.00000 3.33333 0.00000
0.00000 2.22222 0.00000 3.33333 0.00000 4.44444
2.22222 0.00000 3.33333 0.00000 4.44444 0.00000
0.00000 3.33333 0.00000 4.44444 0.00000 1.11111
3.33333 0.00000 4.44444 0.00000 1.11111 0.00000
0.00000 4.44444 0.00000 1.11111 0.00000 2.22222
4.44444 0.00000 1.11111 0.00000 2.22222 0.00000
0.00000 1.11111 0.00000 2.22222 0.00000 3.33333

Задача J. Javelin-throwing

Автор:Евгений Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Как-то раз Женя и Анжелика оказались на соревнованиях по метанию копья в качестве зрителей. В соревновании участвовали N спортсменов.

Каждый раз, когда i-ый спортсмен кидал копьё, Женя сообщал Анжелике, на сколько метров кинул копьё данный спортсмен (случайно получилось так, что все числа, которые назвал Женя, были попарно различными). В это время Анжелика записывала на листик, какое место после своего броска займет i-ый спортсмен.

К сожалению, когда соревнование закончилось, Анжелика потеряла листик и очень расстроилась. Но Женя помнит, на сколько метров i-ый спортсмен бросил своё копьё. Помогите ребятам восстановить потерянный листик!

Формат входных данных

В первой строке вводится натуральное число N — количество спортсменов.

Во второй строке вводится последовательность различных натуральных чисел L, где Li — число, которое показывает, на сколько метров кинул своё копьё i-ый спортсмен.

Формат выходных данных

В единственной строке выведите последовательность из N натуральных чисел, где i-ое число показывает, какое место занимает i-ый спортсмен после своего броска.

Ограничения

1 ≤ N ≤ 105, 1 ≤ Li ≤ 109

Пояснение к примеру

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

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

Стандартный вход Стандартный выход
1
4
20 40 30 25
1 1 2 3

Задача K. Kind of cheating

Автор:И. Блинов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:512 Мб
Выходной файл:Стандартный выход  

Условие

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

Паулундра победила в квалификации, показав лучшее время, и подглядела стратегию каждого из n участников соревнования. Она знает, что участник с номером i планирует пробежать трассу за ti секунд и знает вероятность в процентах того, что этот участник сорвётся pi. Так же Паулундра знает, что может пробежать трассу за любое время в промежутке от a до b и при этом вероятность срыва при выбранном времени x можно вычислить следующим образом: 1 − x − ab − a.

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

Формат входных данных

Первая строка входных данных содержит два целых числа a и b. Вторая строка содержит одно целое число n. Далее следует n строк содержащих по два целых числа ti и pi.

Формат выходных данных

Выведите n целых чисел xi.

Ограничения

1 ≤ n ≤ 105

1 ≤ a, b, ti ≤ 109

1 ≤ pi ≤ 100

a < b

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

Стандартный вход Стандартный выход
1
1 5
5
4 10
10 50
1 99
5 50
2 90
4
5
1
5
2

Задача L. Long-term activity

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

Условие

На доске записано натуральное число. Тимофей хочет максимизировать это число, то есть добиться того, чтобы с начала записи шли все девятки, потом — восьмерки, и так далее. За одну операцию он может поменять местами две любые соседние цифры числа. Определите наименьшее количество операций, с помощью которых он сможет осуществить задуманное.

Формат входных данных

Единственная строка входных данных содержит натуральное число n.

Формат выходных данных

Выведите одно неотрицательное целое число — ответ на вопрос задачи.

Ограничения

1 ≤ n ≤ 10100000.

Пояснение к примеру

Исходная строка: 2023.

1) 2032.

2) 2302.

3) 3202.

4) 3220.

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

Стандартный вход Стандартный выход
1
2023
4

Задача M. Must be excluded

Автор:И. Блинов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:512 Мб
Выходной файл:Стандартный выход  

Условие

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

Персональными данными является два подряд идущих через пробел числа, состоящего из четырёх цифр и шести цифр соответственно (серия и номер паспорта). Их требуется заменить на последовательность символов "#### ******".

Пахом без проблем справился с этой задачей. Теперь очередь за вами.

Формат входных данных

Входные данные содержат одну строку S.

Формат выходных данных

Выведите строку S после удаления персональных данных.

Ограничения

1 ≤ |S| ≤ 1000

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

Стандартный вход Стандартный выход
1
My passport details are 1234 533224 please do not distribute them
My passport details are #### ****** please do not distribute them
2
A826 B1234 654321 fgfgh 3333 456789s 5432 123456 0000 000000 56554 34534 2344 32456 0000 000000
A826 B1234 654321 fgfgh 3333 456789s #### ****** #### ****** 56554 34534 2344 32456 #### ******

0.685s 0.011s 43