Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 64 Мб |
Дано неотрицательное целое число N. Требуется определить, существуют ли такие неотрицательные целые числа x и y, что x2 + y2 = N.
Во входном файле содержится единственное число N.
Выходной файл должен содержать искомую пару целых чисел x y, или − 1. если такой пары не существует. При наличии нескольких решений вывести любое из них.
0 ≤ N ≤ 1000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Вася купил аллигатора и строку s, теперь он хочет выбрать для аллигатора имя, которое будет подстрокой строки s. Имя аллигатора не должно быть длиннее 100 символов или короче 5 символов.
Вася считает слогом пару букв, в которой первая буква согласная, а вторая гласная. Красотой имени называется количество слогов в имени.
Помогите Васе посчитать максимальную красоту имени для аллигатора.
Гласные буквы: A, E, I, O, U, Y
Согласные буквы: B, C, D, F, G, H, J, K, L, M, N, P, Q, R, S, T, V, W, X, Z
Первая строка входного файла содержит строку s.
Выходной файл должен содержать одно целое число — максимальную красоту имени для аллигатора.
Длина строки s не превосходит 5 ⋅ 104 и не меньше чем 5, строка состоит из заглавных букв.
Решения работающие для длины s не превосходящей 103 оцениваются из 40 баллов.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Klenin | Ограничение времени: | 5 сек | |
Входной файл: | input.txt | Ограничение памяти: | 200 Мб | |
Выходной файл: | output.txt |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | В. Глушков, Д. Глушкова, И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
В Берляндии в обиходе монеты достоинством 1, 2, 3, 4, 5 и 6 бурлей, толщина всех монет одинаковая. У Васи есть неограниченное количество монет каждого достоинства. Вася и Петя играют в следующую игру: Петя загадывает сумму S, которую необходимо набрать, и сообщает Васе число N — количество монет, которые Вася может использовать. После этого Вася должен подобрать такие N монет, чтобы их сумма равнялась ровно S бурлям. Далее все N монет раскладываются в 6 стопок по номиналам.
Петя решил усложнить игру и предложил Васе найти среди всех возможных вариантов такой, что высота самой высокой стопки монет будет максимальной. Толщина всех монет одинаковая, а значит на высоту стопки влияет только количество монет. С усложнённой версией игры у Васи возникли трудности, и он просит вас решить поставленную задачу.
Данная задача будет проверяться на ОДНОМ входном файле, содержащем все тесты. Этот файл можно скачать ЗДЕСЬ.
В качестве решения принимается как программа, так и текстовый файл, содержащий ответ к задаче в требуемом формате (при его отправке следует выбрать в тестирующей системе среду разработки "Answer text").
Баллы будут начисляться пропорционально количеству правильных ответов в выходном файле. Решение будет полностью проверяться сразу после отправки, и участникам будут видны набранные за данную задачу баллы.
Первая строка входного файла содержит целое число M — количество пар "сумма-количество". Последующие M строк содержат по 2 целых числа — S, N — сумма и заданное количество монет.
Выходной файл должен содержать M строк по 6 цифр — количество монет в каждой стопке.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Дан массив чисел. Необходимо удалить элементы, за которыми в этом массиве следует ноль.
Входные данные содержат ряд чисел, разделенных пробелом.
Выходные данные должны содержать преобразованный массив.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Шавлюгин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
После урока физкультуры N школьников собрались в магазине, чтобы купить воды. Купив одну бутылку, они задумались: ведь в бутылке всего M глотков воды, а денег на еще одну бутылку у них нет!
Чтобы использовать бутылку максимально эффективно, школьники поступили следующим образом: каждый из них назвал целое неотрицательное число, показывающее, насколько сильно его мучает жажда. Когда ученик делает глоток из бутылки, его жажда уменьшается ровно в десять раз (с округлением вниз).
Необходимо определить, кто из жаждущих сколько глотков должен сделать, чтобы, когда вода закончится, их суммарная жажда стала минимально возможной.
1 ≤ N, M ≤ 105
0 ≤ ai ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 512 Мб |
Дана последовательность из N целых чисел ai. Над последовательностью M раз выполняется следующая операция. Из последовательности удаляются два наименьших числа и добавляется в конец число равное сумме двух удаленных. Если наименьших чисел более двух, следует выбрать числа с наименьшими номерами в последовательности.
Требуется написать программу, выводящую последовательность, которая получится после выполнения M операций.
Первая строка входного файла содержит целые числа N и M — количество элементов последовательности и количество операций.
Вторая строка входного файла содержит N целых чисел ai — элементы последовательности.
В выходной файл требуется вывести элементы последовательности после M выполнений вышеописанной операции.
1 ≤ M < N ≤ 105
− 104 ≤ ai ≤ 104
Баллы за подзадачи 1,2 начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены. Баллы за подзадачу 3 начисляются за каждый пройденный тест, если тесты необходимых подзадач пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке | |
---|---|---|---|---|---|
n | m | ||||
1 | 20 | 2 ≤ n ≤ 5 | m < n | полная | |
2 | 20 | 2 ≤ n ≤ 1000 | m < n | 1 | полная |
3 | 60 | 2 ≤ n ≤ 105 | m < n | 1,2 | полная |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Прораб распланировал работы на n дней вперёд, в день i выполняется только один тип работ ai и при этом требуется ci работников. В компании нет постоянных сотрудников, каждый день нанимаются новые работники для выполнения работ.
Так же у прораба имеется список из m работников. j-й работник имеет компетенции на kj различных работ и работник просит pj денег за один день работы (в независимости от типа выполняемых работ).
Так как бюджет ограничен, прораб хочет узнать какое минимальное количество денег он может потратить в каждый из n дней при этом наняв нужное количество работников. Гарантируется, что работников всегда достаточно.
Первая строка входного файла содержит два целых числа n и m. Далее следует n строк содержащих по два целых числа ai и ci. Следующие m строк содержат два целых числа kj и pj, количество компетенций и зарплата за день сотрудника с номером j, далее в этой строке идут kj чисел, номера работ которые может выполнять сотрудник с номером j.
Выходной файл должен содержать n целых чисел, i-e число минимальное количество денег которое нужно потратить в день i.
0 ≤ n, m, ki ≤ 105; 1 ≤ ai ≤ 109; 1 ≤ pi ≤ 100
Сумма по всем ki не превосходит 2 ⋅ 105.
Решения работающие для 0 ≤ n, m, ki ≤ 103; 1 ≤ ai, pi ≤ 103, сумма по всем ki не превосходит 2 ⋅ 103 оцениваются из 40 баллов.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | M. Sporyshev | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Юный программист Вася вернулся домой с летней стажировки в большой IT компании. В качестве сувенира он привез с собой ленточку с последовательностью из N натуральных чисел, вышитых на ней.
Вася равнодушен к числам, поэтому он хотел подарить ленточку кому-нибудь из друзей. Однако, у каждого из M друзей Васи есть ровно одно число, которое он очень не любит, и не захочет себе в подарок ленточку, на которой есть такое число. Все числа, которые не любят друзья Васи, различны.
Чтобы из ленточки все же получился подарок, Вася хочет разрезать ее в нескольких местах так, чтобы каждый полученный кусочек ленточки можно было бы подарить хотя бы одному своему другу (несколько кусочков можно отдать одному и тому же другу).
Напишите программу, которая определит минимальное число разрезов, которое придётся сделать Васе чтобы подарить все кусочки ленточки.
Первая строка входного файла содержит целое число N — количество чисел на ленточке.
Вторая строка входного файла содержит N целых чисел ai — последовательность чисел на ленточке.
Третья строка входного файла содержит целое число M — количество друзей Васи.
Четвертая строка входного файла содержит M целых чисел bi — нелюбимое число i-го друга. Все bi различны.
Выходной файл должен содержать единственное целое число — минимальное количество разрезов ленточки.
1 ≤ N ≤ 105
2 ≤ M ≤ 105
1 ≤ ai, bi ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Бураго | Ограничение времени: | 3 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Центральным элементом набора из k чисел называется такой элемент, который после сортировки набора будет занимать в нём центральную позицию (то есть позицию номер ⌈k / 2⌉, считая с единицы).
Числа добавляются в изначально пустой набор в заданном порядке. Требуется определить значения центрального элемента после добавления каждого числа.
Входной файла содержит количество чисел n, за которым следуют n целых чисел ai в порядке их добавления в набор.
Выходной файл должен содержать n целых чисел — значения центрального элемента после каждого добавления.
1 ≤ n ≤ 106, − 109 ≤ ai ≤ 109.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Известная | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Дается N чисел. Требуется найти их наибольший общий делитель.
Первая строка содержит одно целое число - N
Вторая строка содержит N натуральных чисел ai, разделенных пробелами
Выходные данные должны содержать единственное число - наибольший общий делитель чисел.
1 ≤ N ≤ 105
1 ≤ ai < 264
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
По данным двум целым числам требуется найти их наименьший общий делитель, отличный от 1. Если такого делителя нет (т.е. числа взаимно простые), следует вывести 1.
1 ≤ A, B ≤ 231 − 1
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Властелин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 8 Мб | |
Выходной файл: | output.txt |
Необходимо вывести N простых чисел в порядке их возрастания.
Входной файл содержит одно целое неотрицательное число N.
Выходной файл должен содержать N первых простых чисел в порядке их возрастания.
0 ≤ N ≤ 1000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Артем и Женя обожают строить здания из кубиков. Они уже строили из них гаражи, домики, и даже средневековые замки... Сегодня ребята решили возвести небоскреб. У Артема есть n синих кубиков, а у Евгения m красных. По мысли ребят, построенный небоскреб должен представлять собой два прямоугольных параллелепипеда с квадратными основаниями разного размера, установленные один на другой. Мальчики хотят, чтобы каждый из них построил свою часть многоэтажного строения исключительно из всех своих кубиков, а потом установить один параллелепипед на другой.
Естественно, мальчики хотят порадовать своих родителей и сделать небоскреб как можно выше. Проблема не была бы столь серьезной, если бы они строили на открытом воздухе. Но на улице сильный дождь, а дома невозможно построить небоскреб выше k кубиков. Помогите ребятам рассчитать наибольшую высоту небоскреба, которой они могут достичь.
Первая строка входного файла содержит три натуральных числа, записанных через пробел: n, m и k.
Выведите одно неотрицательное целое число - наибольшую высоту построенного небоскреба.
1 ≤ n, m, k ≤ 109
Баллы за каждый тест начисляются независимо.
В первом примере у Артема 729 кубиков, а у Жени 1024. Наибольшая высота небоскреба, который может быть построен дома, не может превышать 15. Ребята действуют так: сначала Евгений строит из своих кубиков основание небоскреба в виде прямоугольного параллелепипеда: 16 × 16 × 4 (обратите внимание - основание параллелепипеда обязательно должно быть квадратным). Потом Артем устанавливает сверху на постройку Жени свой прямоугольный параллелепипед: 9 × 9 × 9, и высота небоскреба становится равна 13. Большей высоты с учетом всех ограничений достичь нельзя.
Во втором примере у ребят не получится составить небоскреб. Артем может построить свою часть в виде единственно возможного прямоугольного параллелепипеда: 1 × 1 × 17, Женя (аналогично): 1 × 1 × 19. Но, во-первых, обе построенные ими части будут иметь равное основание, а во вторых, общая высота небоскреба 36 превышает высоту помещения.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Anton Karabanov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
"Сенсационная находка!", "Археологи обнаружили древнюю цивилизацию!", "Ученые поражены развитием древних технологий!" — такими заголовками пестрели новости. Обнаруженные под толщей песка пустыни Сахары артефакты действительно поражали: совершенные приборы и механизмы, манускрипты и пергаменты с непонятными записями, предметы искусства и быта - всё указывало на существовавшую когда-то в этом регионе развитую цивилизацию. Ученые нацелились на долгую и кропотливую работу.
Нумизматов же, конечно заинтересовала денежная система Древнесахарцев (так окрестили обнаруженную цивилизацию). Были найдены золотые монеты разного размера, все исключительно квадратной формы и с квадратным отверстием посередине. Что интересно - все размеры (и сторон монет, и сторон отверстий) были нечетными числами. Было высказано предположение, что стоимость монеты соответствовала её площади: так на монете размером 5 с отверстием 1 было отчеканено 24 точки, на монете размером 5 с отверстием 3 нашлось 16 точек, на монете размером 3 с отверстием 1 отчётливо видно 8 точек. Всё указывало на то, что стоимость монеты равна разности квадратов стороны монеты и стороны отверстия: 52 − 12 = 24, 52 − 32 = 16, 32 − 12 = 8.
По данной стоимости монеты определите все её возможные размеры.
Входные данные содержат целое число n — стоимость монеты. Гарантируется, что n кратно восьми.
В первой строке выведите целое число k — количество различных возможных размеров монет. В следующих k строках выведите по два числа: размер стороны монеты и размер отверстия. Записи упорядочите по возрастанию сторон монет.
8 ≤ n ≤ 1012
В примере дана стоимость монеты 72. Ей могут соответствовать три подходящих размера: 92 − 32 = 81 − 9 = 72, 112 − 72 = 121 − 49 = 72 и 192 − 172 = 361 − 289 = 72.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Саранцев А.А. | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Задано целое неотрицательное число n. Выведите n! по модулю 109 + 7.
Факториал числа n считается следующим образом:
n! = 1 ⋅ 2 ⋅ … ⋅ (n − 1) ⋅ n.
В первой и единственной строке входных данных задано целое число n (0 ≤ n ≤ 106).
Выведите единственное целое число: факториал числа n по модулю 109 + 7.
0 ≤ n ≤ 106
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | CSES | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Вам необходимо по заданным двум неотрицательным целым числам a и b эффективно отвечать на вопрос: чему равен остаток от деления ab на 109 + 7?
Первая строка входных данных содержит единственное целое число n: количество запросов.
В каждой из следующих n строк содержатся два целых числа a и b.
Для каждого запроса выведите значение ab по модулю 109 + 7.
1 ≤ n ≤ 2 ⋅ 105
0 ≤ a, b ≤ 109
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | CSES | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Вам необходимо по заданным трем неотрицательным целым числам a, b и c эффективно отвечать на вопрос: чему равен остаток от деления abc на 109 + 7?
Обратите внимание, что степени считаются справа налево, то есть abc = a(bc).
Первая строка входных данных содержит единственное целое число n: количество запросов.
В каждой из следующих n строк содержатся три целых числа a, b, c.
Для каждого запроса выведите значение abc по модулю 109 + 7.
1 ≤ n ≤ 105
0 ≤ a, b, c ≤ 109
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Саранцев А.А. | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Саша очень хочет построить строку s по следующим правилам:
1. Строка s состоит только из символов "a", "b" и "c";
2. В s содержится ровно na символов "a";
3. В s содержится ровно nb символов "b";
4. В s содержится ровно nc символов "c".
Перед тем, как построить строку, Саша заинтересовался тем, сколько различных строк он сможет построить. Будем считать, что он не ограничен во временных ресурсах. Саша не нашел ответа на этот вопрос, поэтому попросил вас посчитать это за него.
Так как ответ может быть очень большим, выведите его по модулю 109 + 7.
В первой и единственной строке входных данных содержится три целых числа na, nb и nc: количество каждого из символов соответственно. Гарантируется, что na + nb + nc ≥ 1.
Выведите ответ на задачу: количество всевозможных различных строк по модулю 109 + 7.
0 ≤ na, nb, nc ≤ 105
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | ВКОШП 2017 | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Миша очень любит изобретать новые операции. Недавно он изобрёл новую операцию, которую он в честь себя назвал смишенным произведением.
Смишенное произведение набора различных натуральных чисел a1, a2, …, an устроено следующим образом. Рассмотрим все возможные упорядоченные пары (ai, aj) различных чисел этого набора. Для каждой пары запишем эти числа подряд без пробела, получив новое число bij. Смишенным произведением чисел из исходного набора Миша называет сумму всех значений bij.
Помогите Мише посчитать смишенное произведение заданного набора чисел. Миша хочет вычислить его по модулю 109 + 7.
Первая строка содержит одно натуральное число n — количество чисел в наборе.
Вторая строка содержит n различных натуральных чисел a1, a2, …, an — числа набора.
Выведите одно число — остаток от деления смишенного произведения заданных чисел на число 109 + 7.
2 ≤ n ≤ 105
1 ≤ ai ≤ 108
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | prizes.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | prizes.out |
Петр участвует в конкурсе, в котором разыгрывается N призов. Призы пронумерованы от 1 до N.
По итогам конкурса участник может набрать от 2 до N баллов. Если участник наберет K баллов, то он получит один из призов с номером от 1 до K.
Перед тем, как участник выберет свой приз, ведущий конкурса удаляет один из призов с номером от 1 до K. Затем участник может выбрать любой приз из оставшихся K − 1.
Список призов стал известен Петру. Он определил для каждого приза его ценность, для i-го приза она задается целым числом ai.
Требуется написать программу, которая по заданным ценностям призов определяет для каждого K от 2 до N, приз с какой максимальной ценностью гарантированно достанется Петру, если он наберет в конкурсе K баллов.
Первая строка входного файла содержит число N. Вторая строка этого файла содержит N целых чисел: a1, a2, …, aN.
Выходной файл должен содержать одну строку, содержащую N − 1 целых чисел: для каждого K от 2 до N должна быть выведена ценность приза, который достанется Петру, если он наберет K баллов.
2 ≤ N ≤ 100000; 1 ≤ ai ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты успешно пройдены.
N ≤ 100
N ≤ 5000
N ≤ 100 000
По запросу сообщается результат окончательной проверки на каждом тесте.
№ | Входной файл (prizes.in ) |
Выходной файл (prizes.out ) |
---|---|---|
1 |
|
|
Автор: | Д. Заборцева, В. Пальчевский | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 512 Мб | |
Выходной файл: | output.txt |
Расхитительница гробниц Лара Крофт стоит на левом краю ущелья. Она хочет перебраться на правую сторону чтобы исследовать древний храм. Для этого ей нужно без остановок пробежать вперёд по подвесному мосту длиной N досок.
В ущелье бушует сильный ветер, поэтому каждую секунду где-то может упасть одна или несколько досок, либо не упасть ни одной. Каждую секунду Лара должна прыгнуть вперёд на любое количество досок от 1 до K. Если доска, на которую собирается прыгнуть Лара, обвалится в ту же секунду, то приключение героини окончено.
Оракул подсказал Ларе N чисел xi — номера секунд, в который обвалится i-ая доска подвесного моста. В нулевую секунду Лара стоит на левом краю ущелья.
Необходимо определить, сможет ли Лара перебраться на правую сторону ущелья и если да, то за сколько секунд.
Первая строка входного файла содержится целые числа N и K.
Вторая строка содержит N целых чисел xi.
Выходной файл должен содержать единственное целое число — минимальное количество секунд, за которые Лара преодолеет мост и окажется на правой стороне ущелья.
Если Лара не сможет добраться до другой стороны ущелья, выведите − 1.
0 ≤ K ≤ 100
1 ≤ N ≤ 105
0 ≤ xi ≤ 2 ⋅ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Сегодня на занятии кружка по математике Тимофей узнал о существовании фигурных чисел. Больше всего его заинтересовали треугольные и квадратные числа.
Напомним, что число называется треугольным, если количество объектов, которое оно выражает, можно расставить в виде правильного треугольника. Аналогично, если это количество можно расставить в виде квадрата, то число называется квадратным.
На рисунке вы видите начало ряда треугольных чисел (1, 3, 6, 10, ...) и ряда квадратных чисел (1, 4, 9, 16, ...).
Тимофею нравится находить закономерности. Он смог доказать, что любое квадратное число (если оно больше 1) представимо в виде суммы всего двух треугольных чисел! Для поиска более сложных закономерностей ему нужно знать количество различных способов это сделать.
Помогите Тимофею! Найдите количество способов представления данного квадратного числа в виде суммы двух треугольных. Способы, отличающиеся порядком слагаемых, считаются одинаковыми.
В единственной строке входного файла записано одно натуральное квадратное число n.
Выведите одно натуральное число - ответ на задачу.
4 ≤ n ≤ 1010
Баллы за каждый тест начисляются независимо.
Комментарий к первому примеру: существует единственный способ представить 4 в виде суммы двух треугольных чисел: 4 = 3 + 1.
Комментарий ко второму примеру: существует два способа представить 16 в виде суммы двух треугольных чисел: 16 = 10 + 6 = 15 + 1.
Комментарий к третьему примеру: существует четыре способа представить 10000 в виде суммы двух треугольных чисел: 10000 = 5050 + 4950 = 5995 + 4005 = 8515 + 1485 = 9180 + 820.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Гусеница длины L ползёт по пересечённой местности. Пересечённую местность можно представить в виде одномерного массива из N клеток с разными высотами. Клетка ai называется спуском, если ai > ai + 1. Клетка ai называется подъёмом, если ai < ai + 1. Изначально гусеница занимает первые L клеток.
Чтобы продвинуться на одну клетку вперёд, гусеница тратит 1 секунду времени. Однако если среди занимаемых ей клеток спусков больше, чем подъёмов, и голова гусеницы находится на спуске, то она моментально продвигается вправо на одну клетку.
Определите, через сколько секунда голова гусеница достигнет последней клетки.
Первая строка входных данных содержит два целых числа L, N. Вторая строка содержит N целых чисел ai.
Выходные данные должны содержать одно целое число — время, через которое гусеница достигнет последней клетки.
1 ≤ ai, N, L ≤ 106, L ≤ N, ai ≠ ai + 1
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Вам дана строка s, состоящая из строчных латинских символов. Необходимо найти самую длинную подстроку строки s, НЕ содержащую первый и последний символ внутри.
Входные данные содержат одну строку s.
В ответ нужно вывести целое число — длину подходящей подстроки.
2 ≤ |s| ≤ 106
В первом примере ответом могут быть подстроки abc и bcb. Во втором — bacab.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Михалев Ю. | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Васе скучно. Чтобы развлечь себя, он стал отмечать скучные дни числом − 1, а обычные числом 1. Теперь Вася называет промежуток с l по r дни включительно скучным, если в него входит нечетное число скучных дней.
Чтобы не дать Васе умереть от скуки, вы должны срочно научиться отвечать на следующий вопрос: является ли промежуток с l по r день включительно скучным?
Первая строка входных данных содержит два целых числа N — количество дней и M — количество запросов.
Вторая строка содержит N чисел: − 1, если i-ый день был скучным, и 1 иначе.
Следующие M строк содержат запросы вида: li ri
Выходные данные должны содержать M строк - ответы на запросы
В i − й строке необходимо вывести − 1, если промежуток с li по ri дни включительно считается скучным, и 1 в противном случае
1 ≤ N ≤ 5 ⋅ 104
1 ≤ M ≤ 5 ⋅ 104
1 ≤ li ≤ ri ≤ N
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | prizes.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | prizes.out |
Алиса и Боб стали победителями телевикторины, и теперь им предстоит выбрать себе призы. На выбор предлагается n призов, пронумерованных от 1 до n.
Распределение призов происходит следующим образом. Организаторы телевикторины сообщают победителям целое положительное число k (1 ≤ k ≤ n / 3). Сначала Алиса выбирает себе любые k подряд идущих номеров призов. Потом Боб выбирает себе k подряд идущих номеров призов, при этом он не может выбирать номера, которые уже выбрала Алиса. После этого победители забирают выбранные ими призы.
Алиса хорошо знает Боба, и для каждого приза выяснила его ценность для Боба, которая является целым положительным числом. Алиса обижена на Боба и хочет выбрать свои призы так, чтобы суммарная ценность призов, которые достанутся Бобу, была как можно меньше. При этом Алису не волнует, какие призы достанутся ей.
Требуется написать программу, которая по информации о ценности призов и значению k определит, для какого минимального значения x Алиса сможет добиться того, чтобы Боб не смог выбрать призы с суммарной ценностью больше x.
В приведенном примере Алиса может, например, выбрать 4-й и 5-й призы. После этого для Боба оптимально выбрать 9-й и 10-й призы с суммарной ценностью 7.
В этой задаче три подзадачи. Баллы за подзадачу начисляются только в случае, если все тесты для данной подзадачи успешно пройдены.
3 ≤ n ≤ 50, 1 ≤ ai ≤ 105.
3 ≤ n ≤ 5000, 1 ≤ ai ≤ 105.
3 ≤ n ≤ 100 000, 1 ≤ ai ≤ 109.
По запросу сообщается результат окончательной проверки на каждом тесте.
Первая строка входного файла содержит два целых числа: n — общее количество призов и k — количество подряд идущих номеров призов, которое должен выбрать каждый из победителей.
Вторая строка содержит n целых положительных чисел: a1, a2, …, an. Для каждого приза указана его ценность для Боба.
Выходной файл должен содержать одно число — минимальное значение x, для которого Алиса сможет добиться того, чтобы Боб не смог выбрать призы с суммарной ценностью больше x.
3 ≤ n ≤ 100 000, 1 ≤ k ≤ n / 3, 1 ≤ ai ≤ 109.
№ | Входной файл (prizes.in ) |
Выходной файл (prizes.out ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Дан массив из N элементов, нужно научиться находить сумму чисел на отрезке.
Первая строка содержит два целых числа N и K — число чисел в массиве и количество запросов. (1 ≤ N ≤ 100 000), (0 ≤ K ≤ 100 000). Следующие K строк содержат запросы
A i x
— присвоить i-му элементу массива значение x (1 ≤ i ≤ n, 0 ≤ x ≤ 109)Q l r
— найти сумму чисел в массиве на позициях от l до r. (1 ≤ l ≤ r ≤ n)
На каждый запрос вида Q l r
нужно вывести единственное число — сумму на отрезке.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Входной файл: | rvq.in | Ограничение времени: | 2 сек | |
Выходной файл: | rvq.out | Ограничение памяти: | 256 Мб |
В начальный момент времени последовательность an задана следующей формулой: an = n2 mod 12345 + n3 mod 23456.
Требуется много раз отвечать на запросы следующего вида:
Первая строка входного файла содержит натуральное число k — количество запросов (1 ≤ k ≤ 100 000).
Следующие k строк содержат запросы, по одному на строке. Запрос номер i описывается двумя целыми числами xi, yi.
Если xi > 0, то требуется найти разность между максимальным и минимальным значениями среди элементов axi, …, ayi. При этом 1 ≤ xi ≤ yi ≤ 100 000.
Если xi < 0, то требуется присвоить элементу a|xi| значение yi.
В этом случае − 100 000 ≤ xi ≤ − 1 и |yi| ≤ 100 000.
Для каждого запроса первого типа в выходной файл требуется вывести одну строку, содержащую разность между максимальным и минимальным значениями на соответствующем отрезке.
№ | Входной файл (rvq.in ) |
Выходной файл (rvq.out ) |
---|---|---|
1 |
|
|
Автор: | StdAlg | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Пара элементов (Ai, Aj) последовательности AN называется инверсией, если Ai > Aj и i < j.
Напишите программу, которая по заданной последовательности AN посчитает количество инверсий.
В первой строке входного файла содержится число N — количество элементов последовательности
Последующие N целых чисел задают саму последовательность
В выходном файле должно содержаться единственное число — количество инверсий входной последовательности.
2 ≤ N ≤ 105
0 ≤ Ai ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | diploma.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | diploma.out |
Когда Петя учился в школе, он часто участвовал в олимпиадах по информатике, математике и физике. Так как он был достаточно способным мальчиком и усердно учился, то на многих из этих олимпиад он получал дипломы. К окончанию школы у него накопилось N дипломов, причем, как оказалось, все они имели одинаковые размеры: W — в ширину и H — в высоту.
Сейчас Петя учится в одном из лучших российских университетов и живет в общежитии со своими одногруппниками. Он решил украсить свою комнату, повесив на одну из стен свои дипломы за школьные олимпиады. Так как к бетонной стене прикрепить дипломы достаточно трудно, то он решил купить специальную доску из пробкового дерева, чтобы прикрепить ее к стене, а к ней — дипломы. Для того чтобы эта конструкция выглядела более красиво, Петя хочет, чтобы доска была квадратной и занимала как можно меньше места на стене. Каждый диплом должен быть размещен строго в прямоугольнике размером W на H. Прямоугольники, соответствующие различным дипломам, не должны иметь общих внутренних точек.
Требуется написать программу, которая вычислит минимальный размер стороны доски, которая потребуется Пете для размещения всех своих дипломов.
Решения, правильно работающие только при W, H, N ≤ 1000, будут оцениваться в 40 баллов.
Входной файл содержит три целых числа: W, H, N
В выходной файл необходимо вывести ответ на поставленную задачу.
1 ≤ W, H, N ≤ 109
№ | Входной файл (diploma.in ) |
Выходной файл (diploma.out ) |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
В столице Дальнего Востока проходит конкурс детских рисунков. Для оформления выставки работ финалистов организаторы планируют задействовать квадратный стенд. На одной стороне стенда будут размещены n вертикально ориентированных изображений одинакового размера w1 × h1. На второй стороне стенда будут размещены m горизонтально ориентированных изображений одинакового размера w2 × h2. При этом, согласно стандартам, расстояние между двумя рисунками, а также между рисунком и краем стенда должно быть не меньше 1, а стороны рисунков должны быть параллельны сторонам стенда.
Помогите организаторам рассчитать наименьшую сторону стенда, на котором возможно разместить все работы конкурсантов.
Единственная строка входного файла содержит шесть целых неотрицательных чисел, записанных через пробел: n, w1, h1, m, w2, h2. Гарантируется, что n и m не равны нулю одновременно.
Выведите одно натуральное число - минимальный размер стенда.
0 ≤ n, m ≤ 109
1 ≤ w1, h1, w2, h2 ≤ 109
w1 ≤ h1
h2 ≤ w2
Баллы за каждый тест начисляются независимо.
Решения, верно работающие при m = 0, получат не менее 20 баллов.
Решения, верно работающие при w1 = h2, h1 = w2, получат не менее 20 баллов.
В примере нужно на одной стороне стенда разместить пять вертикально ориентированных рисунков размером 2 × 3 и четыре горизонтально ориентированных размером 5 × 1 на противоположной. Минимальный подходящий размер стенда 10, один из вариантов размещения изображений - на рисунке.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Anton Karabanov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Тимофей придумал новую функцию и назвал её своим именем. Теперь его имя гордо красуется рядом с именами Эйлера, Мёбиуса и Римана — в их честь тоже названы функции. Правда практического применения своего открытия Тимофей ещё не придумал, но активно работает в этом направлении.
Функция Тимофея определена на множестве натуральных чисел следующим образом: f(x) = x + ⌊ x10⌋ + ⌊ x100⌋ + ⌊ x1000⌋ + …, где ⌊ x10n⌋ означает округление результата деления вниз до целой части. Например, f(404) = 404 + ⌊ 40410⌋ + ⌊ 404100⌋ = 404 + 40 + 4 = 448.
Пока Тимофей оформляет статью в математический журнал, найдите такое число x, что f(x) = n.
Входные данные содержат натуральное число n — значение функции.
Выведите одно натуральное число — аргумент функции, при котором достигается данное значение. Гарантируется, что такое число единственно.
1 ≤ n ≤ 1018
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
По сюжету сатирической сказки Михаила Салтыкова-Щедрина «Повесть о том, как один мужик двух генералов прокормил», два отставных генерала, выйдя на пенсию, неизвестным образом попадают на необитаемый остров. Они хотят выбраться с острова, однако не могут, поскольку даже не разбираются в сторонах света. Вскоре они решают найти мужика (то есть крестьянина), который сможет их вернуть домой. Генералы находят на острове мужика. Мужик строит для них лодку и переправляет через моря в Петербург. По прибытии в Петербург они наедаются, напиваются и едут в казначейство за деньгами. В благодарность за спасение с острова они посылают мужику рюмку водки и пятак серебра, восклицая: «Веселись, мужичина!».
Но у нас не сказка, а задача, да и генералы с тех пор слегка изменились, поэтому они будут помогать мужику строить лодку. Для её изготовления нужно n досок, каждый человек за один день способен сделать одну доску. Мужик, как архетип неутомимого народа, способен работать каждый день, а вот генералам нужен отдых, выходные и отпуск на море (хорошо, что место действия соответствует). Поэтому первый генерал работает a дней подряд, а потом b дней подряд отдыхает. Второй генерал работает c дней подряд, а потом d дней подряд отдыхает. Как скоро будет построена лодка?
Единственная строка входного файла содержит пять натуральных чисел, записанных через пробел: n - требуемое количество досок, a, b, c и d - расписание работы генералов.
В единственной строке выведите одно натуральное число - минимальное количество дней, требуемое для постройки лодки.
1 ≤ n ≤ 1018.
1 ≤ a, b, c, d ≤ 1015.
Баллы за каждый тест начисляются независимо.
Решения, верно работающие при 1 ≤ n ≤ 106, получат не менее 40 баллов.
В первом примере нужно изготовить 11 досок. Мужик работает каждый день, первый генерал работает один день, потом отдыхает два дня, второй генерал работает два дня, потом отдыхает три. События будут развиваться следующим образом:
В первый день мужик и оба генерала делают по одной доске каждый.
Во второй день мужик и второй генерал делают по одной доске каждый, первый генерал отдыхает. Всего готово 5 досок.
В третий день работает только мужик, оба генерала отдыхают. Всего готово 6 досок.
В четвертый день мужик и первый генерал делают по одной доске каждый, второй генерал отдыхает. Всего готово 8 досок.
В пятый день работает только мужик, оба генерала отдыхают. Всего готово 9 досок.
В шестой день мужик и второй генерал делают по одной доске каждый, первый генерал отдыхает. Всего готово 11 досок - лодка построена. Работа завершена за 6 дней.
Во втором примере лодка строится за один день.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Андрей укладывает дома пол. У него длинный коридор длиной L.
У Андрея есть бесконечное количество досок, длины которых равны d. Необходимо полностью уложить пол досками. Доски можно пилить, но при этом в укладке нельзя использовать части досок короче c.
Сколько досок Андрею необходимо разрезать, чтобы уложить пол?
Входные данные содержат три целых числа: L, d, c.
Выходные данные должны содержать одно целое число — минимальное количество разрезанных досок.
В случае, если с заданными ограничениями паркет выложить невозможно, вывести − 1.
1 ≤ L, d ≤ 109
0 ≤ c ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Михалев Ю. | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Вася играет в новую MMORPG и собирается пойти в рейд на босса. Однако, он столкнулся с двумя проблемами:
1. Он не знает на какого босса пойти
2. У него нет нужной экипировки для похода в рейд
Чтобы пойти в рейд на i-го босса, персонажу Васи нужно иметь уровней вещей персонажа не менее bi. Начальный уровень вещей персонажа Васи равен нулю. Вещи можно купить во внутриигровом магазине: j-ая вещь стоит aj монет и добавляет столько же к уровню вещей персонажа.
Каждую вещь для одного босса можно купить только один раз. Для разных боссов можно покупать одни и те же вещи. При этом Вася очень принципиальный и не хочет покупать вещь, если не были куплены все вещи меньшей стоимости. Иными словами, он хочет скупать только подряд идущие вещи, начиная с самой первой.
Вася попросил вас помочь ему с выбором и подсчитать минимальную стоимость экипировки, необходимой для похода в рейд на каждого босса
Первая строка входных данных содержит два целых числа: N — количество вещей в магазине и M — количество боссов.
Вторая строка содержит N чисел, отсортированных по возрастанию: ai — стоимость и уровень i-ой вещи в магазине.
Третья строка содержит M чисел: bi — минимальный уровень вещей, необходимый для похода в рейд на i-го босса
Выходные данные должны содержать M чисел: ci — минимальные затраты на покупку вещей для похода на i-го босса
В случае, если для данного босса невозможно получить необходимый уровень вещей, программа должна вывести -1
1 ≤ N ≤ 5 ⋅ 104
1 ≤ M ≤ 5 ⋅ 104
1 ≤ ai, bi ≤ 109
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | М. Спорышев, А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Студент Вася решил приобрести себе новый гаджет. Стипендия у Васи небольшая, а гаджет — дорогой, поэтому Вася решил купить гаджет в кредит.
В магазине Васе объяснили правила предоставления кредита.
Поскольку на деньги, оставшиеся от выплаты по кредиту, Васе нужно питаться целый месяц, он хочет выбрать минимально возможную сумму ежемесячного платежа, позволяющую рассчитаться за кредит в установленный срок. Требуется написать программу, определяющую эту сумму.
Входной файла содержит целые числа N P C.
Выходной файл должен содержать единственное целое число — подходящий Васе ежемесячный платеж.
1 ≤ C ≤ 109; 0 ≤ P ≤ 109; 1 ≤ N ≤ 104
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | М. Панов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Игорь тренирует детей на летней школе по программированию. Чтобы школьники получили наибольшее количество опыта, он хочет им дать несколько сложных задач, но организаторы мероприятия считают, что чем больше задач решают юные программисты, тем лучше. поэтому Игорю нужно составить контесты так, чтобы дети решили как можно больше задач.
Осталось всего два дня, в течение которых школьники будут решать контесты. Недавно в тестирующей системе появилось n новых задач, из которых и будут формироваться контесты. Причем сложность всех задач различна, и для первой задачи в списке равна a, а у каждой следующей на a больше, чем у предыдущей. Так как Игорь уже давал ребятам другие контесты, он знает, что суммарная сложность задач, которые школьники могут решить за день, равна b. При этом школьники не обязательно должны решить задачи суммарной сложностью ровно b. Помогите Игорю узнать максимальное количество задач, которое могут решить дети за два дня.
Первая строка входного файла содержит три целых числа a, n и b, разделенные пробелами.
Выходной файл должен содержать одно число - максимальное количество задач, которые школьники могут решить за два дня.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.
Подзадача | Баллы | Ограничения | ||
---|---|---|---|---|
a | n | b | ||
1 | 60 | 1 ≤ a ≤ 103 | 1 ≤ n ≤ 103 | 1 ≤ b ≤ 109 |
2 | 40 | 1 ≤ a ≤ 106 | 1 ≤ n ≤ 109 | 1 ≤ b ≤ 1018 |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Перевозка пассажиров происходит по следующему алгоритму: автобус приходит на вокзал и ожидает пассажиров, пока они не займут все M мест. Новый автобус приходит на вокзал каждые d минут, первый автобус приезжает в момент времени 0. Время ожидания пассажира — это время, пока он стоит на остановке (если автобус стоит на остановке, а пассажир находится в нём, это не считается за ожидание).
Перевозчику пришли новые требования к перевозке пассажиров: теперь суммарное время ожидания для всех пассажиров не должно превышать T минут.
Вам точно известно количество пассажиров N, и для каждого из них момент времени ti, когда пассажир приходит на вокзал. Перевозчик считает, что увеличение интервала между автобусами позволит уменьшить необходимое количество автобусов. Поэтому вам требуется выбрать максимально большой интервал между автобусами так, чтобы суммарное время ожидания для всех пассажиров не превышало T минут.
Первая строка входного файла содержит три целых числа N, M и T. Следующая строка содержит N целых чисел ti. Гарантируется, что первый автобус не может забрать всех пассажиров.
Выходной файл должен содержать одно целое число — максимальный возможный интервал.
0 ≤ N, M ≤ 106; 1 ≤ ti ≤ 106; 1 ≤ T ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | |||
---|---|---|---|---|---|
N | M | ti | T | ||
1 | 50 | 1 ≤ N ≤ 103 | 1 ≤ M ≤ 103 | 1 ≤ ti ≤ 103 | 1 ≤ T ≤ 103 |
1 | 50 | 1 ≤ N ≤ 106 | 1 ≤ M ≤ 106 | 1 ≤ ti ≤ 106 | 1 ≤ T ≤ 109 |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 3 сек | |
Входной файл: | linear.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | linear.out |
Группа ученых работает в международной научной лаборатории, которая занимается исследованиями поведения элементарных частиц в установке для экспериментов "Большой линейный коллайдер" (БЛК). Установка БЛК представляет собой прямую, в некоторых точках которой размещаются частицы, которые могут перемещаться вдоль прямой.
В очередном эксперименте в БЛК размещаются n частиц, каждая из которых представляет собой либо отрицательно заряженную частицу — электрон e − , либо положительно заряженную частицу — позитрон e + . В эксперименте i-я частица исходно размещается в точке с координатой xi. После начала эксперимента в результате работы БЛК частицы начнут перемещаться в разные стороны вдоль прямой: e − частицы перемещаются по направлению уменьшения координаты, а e + частицы — по направлению увеличения координаты. Абсолютные величины скоростей всех частиц одинаковы и равны 1.
Если в процессе перемещения частицы e − и e + оказываются в одной точке, то они взаимодействуют и обе исчезают, при этом они не влияют на дальнейшее поведение остальных частиц.
Ученые выбрали m различных моментов времени t1, t2, ..., tm, для каждого из которых их интересует, какое количество частиц находится в БЛК непосредственно после каждого из этих моментов времени. Отсчет времени начинается с момента 0, когда частицы приходят в движение. Частицы, исчезнувшие в результате взаимодействия в момент времени tj, не должны учитываться при подсчете количества частиц для этого момента времени.
Требуется написать программу, которая по описанию исходного расположения и типов частиц, а также заданным моментам времени, определяет для каждого из моментов количество частиц, которое будет находиться в БЛК непосредственно после этого момента.
Первая строка входного файла содержит число n — количество частиц. Последующие n строк описывают частицы следующим образом: каждая строка содержит по два целых числа xi и vi — координату i-й частицы и ее тип соответственно (x1 < x2 < x3 < ... < xn). Частица e − описывается значением vi = − 1, а частица e + описывается значением vi = 1.
Следующая строка содержит целое число m — количество моментов времени, которые выбрали ученые. Последняя строка содержит m целых чисел: t1,t2,...,tm.
Для каждого момента времени во входном файле требуется вывести одно число: количество частиц в БЛК непосредственно после этого момента.
1 ≤ n, m ≤ 200000
− 109 ≤ xi, m ≤ 109
0 ≤ ti ≤ 109
vi равно − 1 или 1
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | |||
---|---|---|---|---|---|---|
n | xi | m | ti | |||
1 | 35 | 1 ≤ n ≤ 100 | − 100 ≤ xi ≤ 100 | m = 1 | 0 ≤ ti ≤ 100 | |
2 | 12 | 1 ≤ n ≤ 100 | − 109 ≤ xi ≤ 109 | m = 1 | 0 ≤ ti ≤ 109 | 1 |
3 | 12 | 1 ≤ n ≤ 200 000 | − 109 ≤ xi ≤ 109 | m = 1 | 0 ≤ ti ≤ 109 | 1, 2 |
4 | 41 | 1 ≤ n ≤ 200 000 | − 109 ≤ xi ≤ 109 | 1 ≤ m ≤ 200 000 | 0 ≤ ti ≤ 109 | 1, 2, 3 |
По запросу сообщается результат окончательной проверки на каждом тесте.
В приведенном примере в начальный момент в БЛК находятся 4 частицы: частица e + в точке − 1, частица e − в точке 0, частица e + в точке 1 и частица e − в точке 5.
В момент времени 0.5 первая частица e + и первая частица e − сталкиваются в точке с координатой − 0.5 и исчезают. В момент времени 1 оставшиеся две частицы находятся в точках с координатами 2 и 4, соответственно. В момент времени 2 они сталкиваются в точке 3 и исчезают. Больше в БЛК частиц нет.
№ | Входной файл (linear.in ) |
Выходной файл (linear.out ) |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Тимофей с одноклассниками обожают играть в баскетбол и не пропускают ни одной возможности сыграть в эту замечательную игру. Вот и сегодня на большой перемене состоялась важная игра (за выход в 1/1024 финала Объединенного городского школьного турнира).
Игра начинается со счета 0:0. Каждая результативная атака может принести одной из двух команд 1, 2 или 3 очка.
Введем понятие "ход игры" — последовательность изменения счета на табло. Например, ход игры может быть таким: 0-0, 2-0, 2-1, 5-1, 5-3.
Когда учитель информатики по пути в учительскую заглянул в спортзал, счет на табло был a:b. А после звонка на урок был зафиксирован окончательный результат — счет c:d. Теперь на уроке информатики перед ребятами поставлена задача — определить, сколько существует ходов игры, в которых:
1) Начальный счет — 0:0;
2) Промежуточный счет — a:b;
3) Окончательный счет — c:d.
Помогите Тимофею и его одноклассникам!
В первой строке входного файла через пробел записаны два числa: a и b — промежуточный счет. Во второй строке входного файла через пробел записаны два числa: c и d — окончательный счет.
Выведите одно натуральное число — количество различных ходов игры. Гарантируется, что ответ на задачу при любых входных данных не превосходит 1018.
0 ≤ a ≤ c ≤ 20 и 0 ≤ b ≤ d ≤ 20
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.
Подзадача 1: a = 0, b = 0, c = 0, баллы: 15.
Подзадача 2: a = 0, c = 0, баллы: 15.
Подзадача 3: a = 0, b = 0, c = 1, баллы: 20.
Подзадача 4: a = 0, b = 0, баллы: 20.
Подзадача 5: нет ограничений, баллы: 30.
Комментарий ко второму примеру:
Комментарий к третьему примеру:
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Author: | A. Klenin | Time limit: | 3 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
The main hall of the Nearsea Institute of Unspecified Underwater Studies has a shape of a long corridor. Along the corridor, there are N aquariums exhibiting various sea creatures. Aquariums are located at distances x1, …, xN from the hall entrance (xi < xi + 1).
The institute has recently got a new director, who decided that the aquarium maintenance is too costly, and issued an order to remove M (0 ≤ M ≤ N − 2) aquariums.
To minimize the disruption to the looks of the hall, it was decided that:
Your program must select aquariums for removal in such a way that the above conditions are satisfied.
Input file contains integers N M followed by N integers xi.
Output file should contain a single integer — the smallest possible maximum distance.
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Н. Ведерников, И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Илон Маск закончил создание транспорта будущего — Hyperloop. Hyperloop — расположенный на опорах надземный трубопровод, внутри которого с высокой скоростью в одном направлении перемещаются одиночные транспортные капсулы. Пассажирский вариант предполагает n рядов по одному сиденью. Однако из-за конструктивных недостатков люди не могут сидеть на двух подряд идущих рядах. Поэтому, когда продаётся билет с номером места ai из продажи исчезает сам этот билет, и два соседних с ним билета.
Слон Пахом подрабатывает контролёром на Hyperloop. На рейс уже распродано k билетов с номерами ai. Так как все хотят прокатиться на Hyperloop, вы точно знаете, что все билеты будут распроданы. После продажи k билетов вам стало интересно, сколько существует различных способов продажи оставшихся билетов так, чтобы не нарушить правила продажи билетов. Способы считаются различными, если в одном из них существует хотя бы один билет, не проданный в другом.
Первая строка входного файла содержит два целых числа N и K. Далее следует K строк содержащих по одному числу ai. Гарантируется, что для всех пар i и j выполняется условие |ai − aj| ≥ 2 .
Выходной файл должен содержать одно — количество вариантов рассадки пассажиров по модулю 1000000007.
1 ≤ N ≤ 106; 1 ≤ K ≤ 105; 1 ≤ ai ≤ N
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | ||
---|---|---|---|---|
N | K | |||
1 | 15 | 1 ≤ N ≤ 105, N - чётное | K = N / 2 | |
2 | 35 | 1 ≤ N ≤ 20 | 1 ≤ K ≤ 10 | |
3 | 50 | 1 ≤ N ≤ 106 | 1 ≤ K ≤ 105 |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Тимофей очень любит участвовать в разнообразных игровых конкурсах для школьников. "Китайская панда — иероглифы для всех", "Кентавр", "Французский пудель", "Золотой урон", "Сумчатое — аборигенам" — он не пропускает ни одного. Но особенно Тимофею нравится конкурс по технологии информационной коммуникации (ТИК).
Участникам конкурса ТИК предлагается ответить на n вопросов. На каждый вопрос предлагается четыре варианта ответа, обозначенных буквами a, b, c и d. Участник выбирает один из вариантов и отмечает его крестиком в поле для ответа. Правильный ответ на вопрос приносит конкурсанту один балл, неправильный — ноль баллов. Всего в конкурсе можно набрать от 0 до n баллов.
Вот и настал день проведения долгожданного конкурса. Одна беда — именно сейчас Тимофею нужно срочно убегать по очень важным делам. Поэтому он заполнил клеточки крестиками, совершенно не вчитываясь в задания. Делал он это в соответствии с собственной Стратегией: поставил случайным образом крестик в поле для ответа на первый вопрос, а каждый следующий крестик ставил на одну позицию выше или ниже предыдущего. Ниже приведен пример заполнения поля для ответов в соответствии со Стратегией.
Сегодня, наконец, опубликовали ответы на задания конкурса. Тимофей совершенно не помнит расстановку своих крестиков, но хочет узнать максимально возможное количество баллов, которое он теоретически может получить.
В первой строке входного файла записано одно натуральное число n — количество вопросов.
Во второй строке записаны верные ответы на вопросы конкурса — строка из n символов. На каждой позиции в строке стоит одна из четырех букв: a, b, c или d.
В единственной строке выходного файла запишите одно натуральное число — максимальное количество баллов, которое может набрать Тимофей в соответствии со Стратегией.
1 ≤ n ≤ 105
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.
Подзадача 1: n = 2, баллы: 15.
Подзадача 2: n ≤ 8, баллы: 30.
Подзадача 3: нет дополнительных ограничений, баллы: 55.
Комментарий к первому примеру:
Единственный вариант заполнения в соответствии со Стратегией, который даст возможность Тимофею получить 3 балла из 4: baba.
Комментарий ко второму примеру:
Один из вариантов заполнения в соответствии со Стратегией, который даст возможность Тимофею получить 3 балла из 8: abcbabcb. Больше 3 баллов набрать невозможно.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Король и королева пригласили на пир n рыцарей. Пиршество затянулось допоздна и хозяева изрядно устали. К сожалению, гости не расходятся, пока не услышат от короля с королевой хвалебную речь. У короля есть любимое число k, поэтому он может произнести речь и восславить одного или сразу k рыцарей (естественно, при этом за столом должно сидеть не менее k рыцарей). Сразу после этого один или k рыцарей покидают замок. У королевы тоже есть своё любимое число q, поэтому она может произнести речь и восславить одного или сразу q рыцарей. Сразу после этого один или q рыцарей покидают замок.
Король с королевой решили устроить игру — тот, кто выставит из замка последнего рыцаря — выигрывает и получает право выбрать для культурной программы следующего праздника свою любимую труппу бродячих артистов. Кто выигрывает при безошибочной игре обоих игроков — король, делающий первый ход, или королева, делающая второй ход? Естественно, игроки ходят по очереди.
Единственная строка входного файла содержит три натуральных числа, записанных через пробел: n, k и q — количество рыцарей на королевском пиру, а также любимые числа короля и королевы.
Выведите титул победителя — "King" или "Queen" (без кавычек).
1 ≤ k, q, n ≤ 105
Баллы за каждый тест начисляются независимо.
Решения, верно работающие при k = q, получат не менее 20 баллов.
На пиру 13 рыцарей. Любимое число короля — 6, королевы — 4. Первым ходом король хвалит 6 рыцарей. После любых ответных ходов королевы ему нужно хвалить по одному рыцарю. Если же король первым ходом восславит одного рыцаря, то он проиграет.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Тимофей очень любит числа, являющиеся точными степенями двойки и тройки. У него даже есть два альбома, в которых хранятся карточки с этими числами: в первом можно найти 1, 2, 4, 8, 16 и так далее, а во втором — 1, 3, 9, 27 и так далее.
Тимофей хочет подарить папе число n, составленное из суммы чисел на этих карточках. Поскольку ему жалко расставаться со своими числами, он хочет подарить папе наименьшее число своих карточек, числа на которых в сумме дают n. Сколько карточек Тимофей подарит папе?
Единственная строка входного файла содержит одно натуральное число n.
Выведите одно натуральное число — ответ на задачу.
1 ≤ n ≤ 105
Баллы за каждый тест начисляются независимо.
Решения, верно работающие при 1 ≤ n ≤ 100, получат не менее 40 баллов.
В первом примере число два можно составить двумя способами: 1 + 1 или 2. Тимофей выберет второй способ и передаст папе одну карточку с двойкой.
Во втором примере есть способ (не единственный) представить число 79 в виде набора из четырех карточек: 79 = 64 + 9 + 4 + 2. Меньшим набором карточек обойтись нельзя.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 64 Мб |
Дан квадратный лабиринт, размером N × N, координаты точки входа и точки выхода. Определите минимальное расстояние от входа до выхода.
В выходном файле должно содержаться единственное число — минимальное расстояние. Лабиринт проходим.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 2 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 64 Мб |
Дана последовательность из N целых чисел. Найдите любую из ее наибольших строго возрастающих подпоследовательностей.
В выходной файл выведите длину найденной наибольшей возрастающей подпоследовательности, а затем номера входящих в нее элементов в порядке возрастания.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | А. Кленин, краевая олимпиада 2001 г. | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Начинающий бизнесмен Вася копит в свинье-копилке деньги на открытие собственного дела. Как известно, количество денег в копилке можно определить, только разбив ее. Однако Вася не хочет разбивать копилку раньше, чем будет накоплена требуемая сумма.
Друг подсказал Васе, что можно оценить минимальное количество денег в копилке, зная вес пустой копилки и вес копилки с монетами.
Дано E — вес пустой копилки, F — вес копилки с монетами, N — количество достоинств монет, Ci и Wi — достоинство и вес каждого вида монет (1 ≤ i ≤ N). Требуется определить минимальную сумму, которая может содержаться в копилке.
В первой строке входного файла содержатся числа E F N. В следующих N строках находятся по два числа — Ci Wi. Все числа во входном файле — целые.
В выходном файле должно содержаться одно число — минимальная сумма, накопленная в копилке. Если заданный вес копилки F не может быть достигнут с монетами заданного типа, то в выходной файл следует записать число − 1.
1 ≤ E ≤ F ≤ 10000; 1 ≤ N ≤ 100
1 ≤ Ci ≤ 10000; 1 ≤ Wi ≤ 10000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|