Автор: | Г. Гренкин | |||
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Бронислав, внук Марфы Геннадьевны, недавно начал учиться считать. Чтобы приобрести как можно больше практических навыков, он считал всё подряд: деревья на улице, прохожих, ветки, листья на деревьях, свои шаги и даже калории.
После длительных занятий, в подтверждение закона перехода количества в качество, Бронислав придумал технологию, упрощающую счёт. Он взял блокнот и каждый раз ставил чёрточку для очередного объекта. Одну чёрточку Бронислав назвал единицей нулевого уровня. Если a0 единиц 0-го уровня идут в блокноте друг за другом, то Бронислав заменяет их на одну единицу 1-го уровня (например, это может быть более длинная или более жирная чёрточка или чёрточка другого цвета). Далее a1 идущих друг за другом единиц 1-го уровня заменяются на одну единицу 2-го уровня и т.д. В итоге у Бронислава в блокноте вместо кучи чёрточек остаётся компактный код следующего вида: kN kN−1 … k1 k0, где kj — количество единиц j-го уровня.
Можно заметить, что если aj = Bj (B > 1), то код — это представление количества объектов M в системе счисления с основанием B.
Эксперты высоко оценили методику Бронислава — ведь с её помощью можно эффективно и с высокой точностью считать самые разные объекты, например время: единицы 0-го уровня — это секунды, 1-го — минуты, далее часы, дни, недели, месяцы, годы и т.д.
Бронислав в свои годы успел неплохо овладеть аналитическими методами, но численные методы и программирование остались неизученными. Поэтому Брониславу нужна ваша помощь. Напишите программу, принимающую на вход количество объектов M и информацию о единицах разных уровней, и выводящую код, вычисленный по методике Бронислава.
Входной файл содержит целые числа M N, за которыми следуют N целых чисел a0 a1 a2 … aN−1.
Выходной файл должен содержать N+1 целых чисел kN kN−1 … k1 k0.
1 ≤ M ≤ 2⋅109.
1 ≤ N ≤ 10.
2 ≤ ai ≤ 100.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Кленин | |||
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Сколько будет 2 + 3?
Путешественник пришел в 7:37 на автостанцию населенного пункта ЗАЙЦЕВО и обнаружил следующее расписание автобусов для всей районной сети маршрутов:
Пункт отправления | Пункт прибытия | Время отправления | Время прибытия |
---|---|---|---|
ЗАЙЦЕВО | ЕЖОВО | 7:35 | 7:40 |
ЗАЙЦЕВО | ЛИСЬЕ | 9:15 | 9:25 |
ЕЖОВО | МЕДВЕЖЬЕ | 10:10 | 10:30 |
ЛИСЬЕ | ЕЖОВО | 11:05 | 11:50 |
МЕДВЕЖЬЕ | ЗАЙЦЕВО | 11:15 | 11:45 |
ЕЖОВО | ЛИСЬЕ | 11:45 | 12:00 |
ЛИСЬЕ | МЕДВЕЖЬЕ | 12:45 | 13:20 |
Определите самое раннее время, когда путешественник сможет оказаться в пункте МЕДВЕЖЬЕ согласно этому расписанию. Укажите время в виде последовательности цифр без знака ':', но с указанием лидирующего нуля в минутах. Например, время 06:03 укажите как 603.
Результаты тестирования представлены в таблице
Фамилия | Пол | Информатика | Математика | Литература | Химия | География |
---|---|---|---|---|---|---|
Зыкова | ж | 55 | 77 | 60 | 66 | 54 |
Кондратьев | м | 85 | 50 | 88 | 62 | 76 |
Крылова | ж | 69 | 76 | 63 | 86 | 60 |
Наумов | м | 81 | 73 | 87 | 78 | 62 |
Савин | м | 70 | 89 | 90 | 73 | 86 |
Федотова | ж | 52 | 83 | 81 | 53 | 83 |
Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
вверх | вниз | влево | вправо |
Четыре команды проверяют условие отсутствия стены у той клетки, где находится РОБОТ
сверху свободно | снизу свободно | слева свободно | справа свободно |
Цикл
ПОКА < условие > команда
выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Сколько клеток приведённого лабиринта соответствует условию, что, выполнив предложенную ниже программу, РОБОТ остановится в той же клетке, с которой он начал движение?
НАЧАЛО ПОКА < справа свободно > вправо ПОКА < снизу свободно > вниз ПОКА < слева свободно > влево ПОКА < сверху свободно > вверх КОНЕЦ |
Семь школьников, остававшихся в классе на перемене, были вызваны к классному руководителю. Один из них разбил окно в кабинете. На вопрос руководителя, кто это сделал, были получены следующие ответы:
Сколько слов длины 4, начинающихся с гласной буквы, можно составить из букв: Ю, Т, Н, В, Я, Ы. Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.
В таблице представлена схема дорог, соединяющих города А, Б, В, Г, Д, Е, Ж, З, И и К. Двигаться по каждой дороге можно только в направлении, указанном стрелкой. Сколько существует различных дорог из города А в город К?
Функция 8 + 7 ⋅ n + 4 ⋅ n6 + 6 ⋅ n3 является
Всякая функция, являющаяся O(n5), является также и
Асимптотическая сложность следующего алгоритма равна Θ(nx):
Си | Бейсик |
---|---|
for (a = 0; a <= n; ++a){ for (k = 0; k <= pow(n, 4); ++k) buf[k] = k; for (j = 0; j <= pow(n, 3); ++j) buf[j] = j; } | FOR a = 0 TO n FOR k = 0 TO n ^ 4 buf(k) = k NEXT k FOR j = 0 TO n ^ 3 buf(j) = j NEXT j NEXT a |
Паскаль | Алгоритмический |
for a := 0 to n do begin for k := 0 to n ** 4 do buf[k] := k; for j := 0 to n ** 3 do buf[j] := j; end; | нц для a от 0 до n нц для k от 0 до n ** 4 buf[k] := k кц нц для j от 0 до n ** 3 buf[j] := j кц кц |
Дан алгоритм
Си | Бейсик |
---|---|
for (i = 0; i <= pow(n, 2); ++i){ c = n; for (cb = 0; cb <= pow(c, 2); ++cb){ k = c; if (XXXXX) for (ca = 0; ca <= pow(cb, 3); ++ca) print(ca, cb, i); } } | FOR i = 0 TO n ^ 2 c = n FOR cb = 0 TO c ^ 2 k = c IF XXXXX THEN FOR ca = 0 TO cb ^ 3 PRINT ca, cb, i NEXT ca NEXT cb NEXT i |
Паскаль | Алгоритмический |
for i := 0 to n ** 2 do begin c := n; for cb := 0 to c ** 2 do begin k := c; if XXXXX then for ca := 0 to cb ** 3 do write(ca, cb, i); end; end; | нц для i от 0 до n ** 2 c := n нц для cb от 0 до c ** 2 k := c если XXXXX то нц для ca от 0 до cb ** 3 вывод ca, cb, i кц все кц кц |
Определите количество вызовов функции f
при исполнении следующего алгоритма:
Прим. Пренебречь размерностью целочисленных переменных.
Си | Бейсик |
---|---|
int f(int n) { int f; if (n >= 32258064516) f = f(n / 4) + 1; if (n < 32258064516 && n >= 645161290) f = f(n - 4) + 1; if (n < 645161290) f = 1; return f; } print(f(1000000000000)); | FUNCTION f(n) IF n >= 32258064516 THEN f = f(n / 4) + 1 IF n < 32258064516 AND n >= 645161290 THEN f = f(n - 4) + 1 IF n < 645161290 THEN f = 1 END FUNCTION PRINT f(1000000000000) |
Паскаль | Алгоритмический |
function f(n: integer): integer; begin if n >= 32258064516 then f := f(n / 4) + 1; if (n < 32258064516) and (n >= 645161290) then f := f(n - 4) + 1; if n < 645161290 then f := 1; end; write(f(1000000000000)); | алг цел f(цел n) нач если n >= 32258064516 то f := f(n / 4) + 1 все если n < 32258064516 и n >= 645161290 то f := f(n - 4) + 1 все если n < 645161290 то f := 1 все кон вывод f(1000000000000) |
Выберите набор ровно из 4 команд, необходимый для того чтобы из списка (3,1,3,1) получить список (3,2,2)
Известно, что в дереве, каждый узел которого имеет степень исхода либо 4, либо 0, высота равна 7. Определите максимально возможное количество узлов такого дерева. (Высота дерева — максимальная длина пути от вершины дерева до его корня. Например, высота дерева, состоящего только из корня, равна 0.)
В качестве решения принимается текстовый файл, содержащий по одному числу в строке — ответы на каждый из вопросов. При отправке файла следует выбрать в тестирующей системе среду разработки "Answer text". Если вы не знаете ответа на какой-то из вопросов, укажите вместо ответа число 0.
Автор: | А. Кленин | |||
Ввод / вывод: | интерактивный | Ограничение времени: | 2 сек | |
Ограничение памяти: | 256 Мб | |||
Максимальный балл: | 100 |
Данная задача является интерактивной.
Юные программисты Петя и Вася играют в следующую игру. Петя задумывает последовательность команд двух видов:
Игра наскучила Пете, и он написал программу, которая играет за него. Программа действует почти так же, как Петя, однако если результат вычислений превосходит 2 × 109, программа сообщает число −1 вместо результата.
Теперь Вася хочет написать программу, которая выиграет у программы Пети.
На каждом шаге взаимодействия, кроме последнего, ваша программа должна:
На последнем шаге программа должна вывести строку, состоящую из символов + и *, обозначающих соответственно команды "Увеличить число на 1" и "Увеличить число в X раз".
После каждого шага, включая последний, следует вывести перевод строки и выполнить сброс буфера (flush).
Количество команд в последовательности находится в диапазоне от 1 до 20
1 ≤ X ≤ 2 × 109
Если Петя задумал последовательность +*++, а Вася предложил выполнить её для X = 3, то Петя ответит ему числом 8. Такое же число 8 получилось бы, если бы Петя задумал *+++++. Поэтому Вася пока не может однозначно угадать Петину последовательность, и должен сделать ещё один ход.
Автор: | С. Пак | |||
Входной файл: | 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 |
Марфа Геннадьевна является главным организатором школьной олимпиады по информатике.
Она хочет, чтобы на олимпиаде были тишина и порядок, поэтому не может допустить, чтобы школьники разговаривали друг с другом во время олимпиады.
На олимпиаду придут участники трех школ — с номерами 1, 2, 3. Марфа Геннадьевна также ведет в этих школах мастер-классы, поэтому знает, что ученики школы 1 ведут себя хорошо и не разговаривают ни с кем во время олимпиады.
Ученики школы 2 любят разговаривать с другими учениками своей школы, поэтому Марфа Геннадьевна не будет садить их рядом друг с другом.
А ученики школы 3 могут разговаривать друг с другом так громко, что Марфа Геннадьевна не будет садить их ближе чем через два участника из других школ.
Для простоты будем считать, что ученики на олимпиаде сидят в один ряд. Их рассадка представляет с собой строку, состоящую из цифр 1, 2, 3, где каждая цифра обозначает место, занятое учеником из соответствующей школы.
Марфа Геннадьевна знает количество участников олимпиады из каждой из трех школ. Помогите ей составить план рассадки, удовлетворяющий ее требованиям, или определить, что это невозможно.
В качестве решения принимается как программа, так и текстовый файл, содержащий ответ к задаче в требуемом формате (при его отправке следует выбрать в тестирующей системе среду разработки "Answer text").
Баллы будут начисляться пропорционально количеству правильных ответов в выходном файле. Если правильный ответ на какой-то из тестов получить не удалось, выведите вместо него число 0.
Первая строка входного файла содержит целое число T — количество тестов. Далее следует T троек чисел c1 c2 c3 — количества участников из соответствующих школ.
Выходной файл должен содержать T строк, состоящих из цифр 1, 2 или 3 — рассадки школьников, согласно требованиям Марфы Геннадьевны. Если составить рассадку невозможно, выведите в соответствующую строку слово impossible.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | М. Спорышев | |||
Входной файл: | 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 |
|
|