Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Глеб очень любит историю. Он приходит в полный восторг, когда ему предлагают изучить историю какой-либо конкретной династии. Глеб очень строго относится к чистоте крови, поэтому при анализе династии он включает в рассмотрение только мужчин, которые являются кровными потомками основателя династии по отцовской линии.
Один из главных методов исторического анализа династии — изучение количества сыновей некоторого ее представителя. Глеб же намеревается произвести настоящую революцию в исследованиях — он намерен изучать не просто количество сыновей, а количество внуков, правнуков, праправнуков и так далее. Однако, династии могли тянуться несколько десятков поколений, а значит общее число кровных потомков очень велико, так что Глебу стало очень тяжело работать. Поскольку на дворе сейчас XXI век, Глеб решил обратиться за помощью к квалифицированным программистам.
Династия представляет собой множество людей, один из которых называется основателем династии, а любой другой представитель династии \(U\) имеет отца \(V\), являющегося представителем династии. При этом \(U\) является сыном \(V\), или потомком \(U\) через \(1\) поколение. Потомком \(U\) через \(k+1\) поколение называется сын \(V\) некоторого потомка \(U\) через \(k\) поколений.
Глеба интересует информация о том, сколько у некоторого представителя династии \(V\) существует потомков через \(k\) поколений. Разумеется, Глеба интересует далеко не один такой вопрос.
В первой строке входного файла содержится одно число \(n\) — количество человек в династии, которую исследует Глеб (\(1 \le n \le 10^5\)), представители династии пронумерованы различными натуральными числами от 1 до \(n\). Далее следуют \(n\) чисел, \(i\)-е из которых задает номер отца \(i\)-го представителя династии, или равно \(-1\), если соответствующий представитель является основателем династии.
Гарантируется, что основатель династии ровно один, и что любой упомянутый представитель династии явялется потомком основателя династии.
В следующей строке содержится число \(m\) — количество вопросов, которое интересует Глеба (\(1 \le m \le 10^5\)). Далее следует \(m\) строк, каждая из которых содержит два целых числа \(v\) и \(k\) (\(1 \le v \le n\), \(1 \le k \le 10^9\)) — номер исследоваемого представителя династии и интересущее Глеба число поколений.
Для каждого вопроса выведите одно число — количество потомков через соответсвующее число поколений у заданного представителя династии.
5 -1 1 2 1 4 2 1 2 4 7
2 0
Как непросто быть школьником! Именно такие мысли чаще всего посещают Петю после уроков математики. Сегодня учительница рассказывала, что такое простые числа. Петя впервые услышал о них. Оказывается, простое число — это такое натуральное число, которое имеет ровно два различных натуральных делителя, то есть делится без остатка только на единицу и на само себя. После урока Петя и его друг Сережа придумали такую игру: один называет два числа A и B, а другой говорит, сколько нулей на конце произведения всех простых между A и B включительно. Петя заметил, что Сережа отвечает на вопрос намного быстрее, чем он сам, и очень просит вас ему помочь. Напишите для Пети программу, которая будет отвечать на вопросы Сережи.
На вход подается два числа A, B (1 ≤ A ≤ B ≤ 109), разделенных пробелом. Гарантируется, что между A и B есть хотя бы одно простое число.
Выведите количество нулей, на которое заканчивается произведение всех простых чисел на отрезке от A до B.
1 7
1
3 3
0
Саша и Лиза — две самые обычные девочки, которые живут в Москве и очень любят Санкт-Петербург. На каникулы они запланировали обширную экскурсионную программу в северной столице, осталось только купить билеты. Девочки знают, что быстрее всего добраться до Санкт-Петербурга можно на скоростном поезде «Сапсан». В каждом вагоне есть N рядов, в каждом из которых по 4 места, которые нумеруются так:
| 1 | 2 | 4 | 3 | |
| 5 | 6 | 8 | 7 | |
| 9 | 10 | 12 | 11 | |
| 13 | 14 | 16 | 15 | |
| 17 | 18 | 20 | 19 | |
| 21 | 22 | 24 | 23 | |
. . . |
. . . |
. . . |
. . . |
Саша и Лиза выбрали вагон, в котором они планируют ехать. Оказалось, что в этом вагоне уже продано M билетов и известно, какие места уже заняты. Девочки решили купить билеты таким образом:
Помогите Саше и Лизе определить, какие места им стоит купить. Гарантируется, что в выбранном вагоне есть как минимум два свободных места.
В первой строке входных данных содержатся числа N — количество рядов в вагоне (1 ≤ N ≤ 105) и M — количество проданных билетов (1 ≤ M ≤ 4N - 2). В следующей строке записаны M различных чисел — номера мест, на которые билеты уже проданы.
Выведите два числа — номера мест, билеты на которые стоит купить девочкам. Если возможны несколько вариантов ответа, выведите любой из них.
2 3 3 7 8
5 6
2 5 1 4 5 2 7
6 8
2 5 2 7 4 5 6
1 3
Восьмиклассник Вениамин использует в качестве паролей только слова, которые есть в словаре, лежащем у него дома. Еще Вениамин знает, что его пятилетний брат Денис мечтает взломать его страницу в одной популярной социальной сети. Каждый раз, когда Вениамин вводит пароль, Денис стоит рядом и пытается запомнить, какие же кнопки его брат нажимает на клавиатуре. К сожалению, у Дениса не очень хорошая память, поэтому запоминает он только первую букву пароля, а когда Вениамин уходит в школу, берет словарь, лежащий у них дома (Денис точно знает, что Вениамин в качестве пароля использует слово из этого словаря), и по очереди пробует в качестве пароля все слова, начинающиеся на эту букву, причем пробует их в алфавитном порядке.
По списку всех слов в словаре помогите Вениамину выбрать пароль. Он должен быть такой, чтобы Денису пришлось перебрать как можно больше вариантов, прежде чем он найдет нужный.
В первой строчке вводится N — количество слов в cловаре (1 ≤ N ≤ 103). В следующих N строчках вводятся слова — строки длиной не более 255 символов, состоящие только из маленьких латинских букв. Слова отсортированы в алфавитном порядке.
Выведите искомый пароль. Если подходящих паролей несколько, выведите тот, который идёт в словаре позже всех остальных.
7 arhimed computer contest informatics programming python team
python
Алиса и Боб — очень опытные шпионы. Лучше всего им удается находить пароли для доступа к различным секретным данным. Вот и в этот раз Алиса получила от Боба сообщение, в котором говорилось, что ключом является число и далее шло само это число. Также Боб писал, что число-ключ должно делиться на 9. Когда Алиса попробовала ввести полученный пароль, то оказалось, что он не подходит. Алиса очень доверяет Бобу, и поэтому она решила, что Боб мог ошибиться только в одной цифре пароля. Поскольку у Алисы не так много времени, она решила не выяснять у Боба правильный ответ, а перебрать все числа, которые могли бы быть паролем, т.е. все такие числа, которые могут быть получены из того числа, которое прислал Боб, заменой ровно одной из его цифр и делятся на 9. За помощью Алиса обратилась к вам. Напишите программу, которая предложит Алисе все возможные варианты пароля.
Во входных данных содержится единственное число P (1 ≤ P ≤ 109) — то число, которая Алиса получила в сообщении от Боба. Гарантируется, что оно не начинается с нуля.
Выведите в столбик все возможные варианты паролей, которые нужно перебрать Алисе, в произвольном порядке. Ни одно из полученных вами чисел не должно начинаться с нуля. Все возможные варианты паролей должны содержать столько же цифр, сколько и исходное число, полученное Алисой.
256
756 216 252