Автор: | А. Усманов | |||
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Клуб программистов еженедельно проводит тренировки для всех желающих. Каждая тренировка завершается поеданием вкусной пиццы.
На одной из таких тренировок пицца разделена на N различных по размеру кусочков. Но разделена не полностью — все кусочки всё ещё соединены расплавленным сыром. В связи с этим, чтобы взять какой-то кусочек, нужно отрезать его от соседей. Так как пицца имеет форму круга, у каждого из кусочков есть ровно два соседа.
Участники тренировки выстраиваются в очередь за пиццей в порядке занятых мест. Так как интенсивное программирование пробуждает аппетит, каждый участник берёт кусочек пиццы наибольшего размера из всех оставшихся. Если наибольший кусочек всё еще соединён со своими соседями, участник отрезает его.
Леонид — очень талантливый программист, поэтому он может занять на тренировке любое место, какое пожелает. Леонид также очень ленив, поэтому он не хочет самостоятельно отрезать себе пиццу.
Помогите Леониду понять, какой наибольший кусочек пиццы он может получить, чтобы ему не пришлось отрезать этот кусочек от соседних.
Входной файл содержит целое число N — количество кусочков, на которые разделена пицца.
Далее следует N различных целых чисел ai — размеры кусочков пиццы, перечисленные в порядке обхода по кругу.
Выходной файл должен содержать единственное целое число — размер наибольшего кусочка пиццы, который может достаться Леониду.
1 ≤ N ≤ 105
1 ≤ ai ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи |
---|---|---|---|
n | |||
1 | 21 | 1 ≤ n ≤ 3 | |
2 | 31 | 1 ≤ n ≤ 103 | 1 |
3 | 48 | 1 ≤ n ≤ 105 | 1, 2 |
По запросу сообщается результат окончательной проверки на каждом тесте.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Блинов | |||
Входной файл: | input.txt | Ограничение времени: | 2 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Учитель математики придумал игру для развития навыков устного счёта. Учитель записывает на доске таблицу A из N × N натуральных чисел. Затем он вызывает к доске двух учеников, и указывает одно из чисел в таблице (Aij). Первый ученик должен выбрать другое число в той же строке, что и указанное учителем (Aiq, q ≠ j), и сложить с указанным числом. Второй ученик должен выбрать другое число в той же столбце, что и указанное учителем (Apj, p ≠ i), и перемножить с указанным числом.
Если результаты вычислений у двух учеников совпали (Aij + Aiq = Aij × Apj), то ученики получают пятёрки. Чтобы игра была честной, учитель указывает только на такие элементы, для которых существует хотя бы одна подходящая пара чисел. Учитель хочет вызвать как можно больше учеников, указывая каждым на ранее не использованный элемент в таблице.
Требуется написать программу, которая определит количество элементов таблицы, для которых существует хотя бы одна подходящая пара чисел.
По втором примере учитель может выбрать число. 2 (2 + 8 = 2 × 5), 4 (4 + 8 = 4 × 3) либо 3 (3 + 9 = 3 × 4). Если вместо 13 поставить число 5, ответ не изменится, хотя для числа 2 появится второй способ выбора подходящей пары чисел.
Входной файл содержит целое число N — размер таблицы, за которым далее следует N строк по N чисел Aij.
Выходной файл должен содержать единственное целое число — количество элементов Aij, для которых существуют p ≠ i, q ≠ j, такие что Aij + Aiq = Aij × Apj.
1 ≤ N ≤ 500,
1 ≤ Aij ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | |
---|---|---|---|---|
N | aij | |||
1 | 15 | 1 ≤ N ≤ 10 | 1 ≤ Aij ≤ 30 | |
2 | 16 | 1 ≤ N ≤ 100 | 1 ≤ Aij ≤ 1000 | 1 |
3 | 22 | 1 ≤ N ≤ 200 | 1 ≤ Aij ≤ 1000 | 2 |
4 | 47 | 1 ≤ N ≤ 500 | 1 ≤ Aij ≤ 109 | 3 |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | М. Спорышев | |||
Входной файл: | input.txt | Ограничение времени: | 10 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
У юного программиста Васи есть младший брат Петя.
Однажды Петя пришел домой и похвастался Васе, что научился быстро находить геометрические фигуры на картинках и поспорил, что теперь находит их гораздо лучше Васи.
Тогда Вася решил найти сложную картинку и посоревноваться со своим младшим братом в нахождении геометрических фигур.
Картинка представляет из себя набор из N строк по M символов в каждом. Каждый символ может принимать значения с кодами от 33 до 126 в кодировке ASCII.
Петя и Вася решили искать на картинке ромбы специального вида. Контур таких ромбов можно задать уравнением |x − a| + |y − b| = r, где a — номер столбца центра фигуры, b — номер строки центра фигуры, а r — ее радиус. Фигура засчитывается только в том случае, если все клетки ее контура содержат один и тот же символ, а также не вылезают за границы картинки. Также не учитываются фигуры, радиус r которых равен 0.
Вася решил сжульничать и написать программу, которая найдет все ромбы за него. Однако он не хочет попадаться, поэтому просит вас написать программу за себя.
В качестве решения принимается как программа, так и текстовый файл, содержащий ответ к задаче в требуемом формате (при его отправке следует выбрать в тестирующей системе среду разработки "Answer text").
Баллы будут начисляться пропорционально количеству правильных ответов в выходном файле. Если правильный ответ на какой-то из тестов получить не удалось, выведите вместо него число −1.
Первая строка входного файла содержит целое число T — количество тестов. Следующие строки содержат описания тестов.
Первая строка каждого теста содержит два целых числа N, M — размеры картинки.
Следующие N строк содержат M символов — описание картинки.
Выходной файл должен содержать T ответов на тесты. Каждый ответ состоит из одной или двух строк.
Первая строка содержит целое число K — количество ромбов на картинке. Вторая строка содержит K четверок a, b, r, c, разделенных пробелами, где целые числа a и b — строка и столбец центра ромба, целое число r — радиус ромба и c — символ, которым заполнен его контур. Четверки, описывающие каждый ромб, можно выводить в любом порядке.
В случае, если ответ на тест найти не удалось, выведите для этого теста одну строку с −1.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | С. Пак | |||
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
В сверхсекретной лаборатории вооруженных сил галактического альянса работают N сотрудников и имеется M кабинетов. Недавно все двери лаборатории были оборудованы магнитными замками, которые открываются специальными магнитными ключами. Перед руководством лаборатории встала задача организации доступа сотрудникам в соответствующие их правам кабинеты.
Все кабинеты пронумерованы по порядку, начиная с нуля. В реестре для каждого сотрудника указаны номера кабинетов, в которые он может попасть по своему ключу. В ключ каждого сотрудника и замок каждого кабинета будет записан некоторый уровень доступа. Уровни доступа — числа, идущие по порядку, начиная с нуля. Сотрудник сможет зайти в кабинет, если его уровень доступа больше или равен уровню доступа кабинета.
Необходимо назначить уровни доступа таким образом, чтобы каждый сотрудник имел доступ только в те кабинеты, в которые он может попасть согласно реестру, и при этом общее количество уровней доступа было как можно меньше.
В первая строка входного файла содержит целые числа N и M. Каждая из следующих N строк описывает права доступа одного сотрудника и содержит целое число Ki —количество доступных сотруднику кабинетов, за которым следует Ki различных целых чисел — номера кабинетов.
Каждый сотрудник имеет доступ к хотя бы одному кабинету, однако некоторые кабинеты могут остаться неиспользованными.
Первая строка выходного файла должна содержать целое число L — количество разных уровней доступа. Следующие L строк должны содержать описания уровней. Каждая из этих строк соответствует очередному уровню доступа и должна содержать целое число Di ≥ 1, за которым следует строго возрастающая последовательность из Di целых чисел — номера кабинетов, доступных на этом и последующих уровнях, но недоступных на предыдущих уровнях.
Если решения не существует, выведите единственное число −1.
1 ≤ N, Ki ≤ 2000, 1 ≤ M ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | М. Спорышев | |||
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Во время тура данная задача будет проверяться только на тестах из условия. Окончательное тестирование будет проведено после тура.
Дан массив из N целых чисел ai.
Требуется найти два числа, ap и aq, удаленных друг от друга не менее, чем на L и не более чем на R (т.е. p < q, L ≤ q − p ≤ R), таких что минимальное из этих двух чисел будет максимально возможным.
Входной файл содержит целые числа N L R, за которыми следуют N целых чисел: a1 a2 … aN.
Выходной файл должен содержать два целых числа p q — позиции искомых чисел в массиве. Нумерация позиций начинается с 1.
Если решений несколько, выберите решение с наименьшим значением p, а если и таких несколько — с минимальным значением q.
2 ≤ N ≤ 100000
1 ≤ L ≤ R < N; 1 ≤ p < q ≤ N
1 ≤ ai ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|