Язык программирования

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Восьмиклассник Вениамин использует в качестве паролей только слова, которые есть в словаре, лежащем у него дома. Еще Вениамин знает, что его пятилетний брат Денис мечтает взломать его страницу в одной популярной социальной сети. Каждый раз, когда Вениамин вводит пароль, Денис стоит рядом и пытается запомнить, какие же кнопки его брат нажимает на клавиатуре. К сожалению, у Дениса не очень хорошая память, поэтому запоминает он только первую букву пароля, а когда Вениамин уходит в школу, берет словарь, лежащий у них дома (Денис точно знает, что Вениамин в качестве пароля использует слово из этого словаря), и по очереди пробует в качестве пароля все слова, начинающиеся на эту букву, причем пробует их в алфавитном порядке.

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

Входные данные
В первой строчке вводится N — количество слов в cловаре (1 ≤ N ≤ 103). В следующих N строчках вводятся слова — строки длиной не более 255 символов, состоящие только из маленьких латинских букв. Слова отсортированы в алфавитном порядке.

Выходные данные
Выведите искомый пароль. Если подходящих паролей несколько, выведите тот, который идёт в словаре позже всех остальных.

Примеры
№ Входные данные Выходные данные
1 7
arhimed
computer
contest
informatics
programming
python
team
python
Как непросто быть школьником! Именно такие мысли чаще всего посещают Петю после уроков математики. Сегодня учительница рассказывала, что такое простые числа. Петя впервые услышал о них. Оказывается, простое число — это такое натуральное число, которое имеет ровно два различных натуральных делителя, то есть делится без остатка только на единицу и на само себя. После урока Петя и его друг Сережа придумали такую игру: один называет два числа A и B, а другой говорит, сколько нулей на конце произведения всех простых между A и B включительно. Петя заметил, что Сережа отвечает на вопрос намного быстрее, чем он сам, и очень просит вас ему помочь. Напишите для Пети программу, которая будет отвечать на вопросы Сережи.

Входные данные
На вход подается два числа A, B (1 ≤ A ≤ B ≤ 109), разделенных пробелом. Гарантируется, что между A и B есть хотя бы одно простое число.

Выходные данные
Выведите количество нулей, на которое заканчивается произведение всех простых чисел на отрезке от A до B.
Примеры
№ Входные данные Выходные данные
1 1 7 1
2 3 3 0
Саша и Лиза — две самые обычные девочки, которые живут в Москве и очень любят Санкт-Петербург. На каникулы они запланировали обширную экскурсионную программу в северной столице, осталось только купить билеты. Девочки знают, что быстрее всего добраться до Санкт-Петербурга можно на скоростном поезде «Сапсан». В каждом вагоне есть N рядов, в каждом из которых по 4 места, которые нумеруются так:

Саша и Лиза выбрали вагон, в котором они планируют ехать. Оказалось, что в этом вагоне уже продано M билетов и известно, какие места уже заняты. Девочки решили купить билеты таким образом:
  • если есть два места рядом, то они покупают их (например, 1 и 2 или 3 и 4)
  • если двух мест рядом нет, то они пытаются купить места рядом через проход (например, 2 и 4)
  • если нет и таких мест, то они покупают любые два свободных места.
Помогите Саше и Лизе определить, какие места им стоит купить. Гарантируется, что в выбранном вагоне есть как минимум два свободных места.

Входные данные
В первой строке входных данных содержатся числа N — количество рядов в вагоне (1 ≤ N ≤ 105) и M — количество проданных билетов (1 ≤ M ≤ 4N - 2). В следующей строке записаны M различных чисел — номера мест, на которые билеты уже проданы.

Выходные данные
Выведите два числа — номера мест, билеты на которые стоит купить девочкам. Если возможны несколько вариантов ответа, выведите любой из них.
Примеры
№ Входные данные Выходные данные
1 2 3
3 7 8
5 6
2 2 5
1 4 5 2 7
6 8
3 2 5
2 7 4 5 6
1 3
В числе подсчитали количество единиц, в получившемся опять подсчитали количество единици т.д.
Например: 111211121112111 - 12 - 1 - 1 - 1 - ...

В итоге полученная последовательность стабилизировалась. На каком числе?

Например, последовательность 111211121112111 - 12 - 1 - 1 - 1 - ... стабилизировалась на числе 1.

Входные данные
Вводится одно натуральное число, состоящее из не более чем 100 цифр.

Выходные данные
Выведите число, на котором стабилизировалась последовательность.
Примеры
№ Входные данные Выходные данные
1 12345 1
2 2007 0
Дано алгебраическое выражение, состоящее из натуральных чисел, переменных (a, b, c, ..., z) записанных строчной латинской буквой, знаков арифметических операций  + ,  - ,  *  (умножение) и  *  *  (возведение в степень). При этом если после числа идет переменная, то знак умножения может быть пропущен.

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

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

Выходные данные
Выведите два числа через пробел: количество умножений и количество возведений в степень.
Примеры
№ Входные данные Выходные данные
1 2x+5 1 0
2 x**y**2z*3*5 3 2
✓ 25✗ 83800средняяВойти и решать
В некоторой карточной игре используется колода, в которой 4 туза. В игре принимает участие 4 игрока, каждому из которых раздается равное число карт, а две карты откладываются в прикуп.

Каждый игрок похвастал, сколько у него тузов. Определите, сколько игроков заведомо солгали.

Например, они сказали 1, 1, 1, 2. Следовательно, заведомо солгал 1 игрок. (Какие-то трое могли сказать правду, но все четверо правду сказать не могли, так как тузов всего 4).

Входные данные
Вводятся 4 числа (от 0 до 9 каждое), разделенных пробелом – количество тузов по словам первого, второго, третьего и четвертого игроков.

Выходные данные
Выведите одно число – минимальное количество игроков, которые заведомо солгали. Если все одновременно могли сказать правду, выведите число 0.
Примеры
№ Входные данные Выходные данные
1 1 1 1 2 1
2 1 1 1 1 0
2011#38238
Представьте число 2011 в виду суммы K последовательных простых чисел (то есть простых чисел, между которыми нет других простых чисел). Например, число 31 можно представить в виде суммы трех посдедовательных простых чисел следующим образом: 7 + 11 + 13 = 31.

Входные данные
Вводится одно натуральное число K (от 1 до 2011).

Выходные данные
Выведите слагаемые в порядке возрастания, разделяя их пробелом.

Если разложить в сумму K слагаемых невозможно, выведите NO SOLUTION (заглавными буквами).
Примеры
№ Входные данные Выходные данные
1 3 661 673 677
2 2 NO SOLUTION
По кругу записано несколько букв (возможно, повторяющихся). Петя интересуется, сможет ли он прочитать некоторое слово, если будет двигаться по кругу (в каком-либо направлении), не пропуская буквы (откуда начинать, и в какую сторону двигаться, он может выбрать сам).

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

Во второй строке записано слово, которое хочет найти Петя. Оно также состоит из строчных латинских букв и имеет длину от 1 до 100.

Выходные данные
Выведите YES заглавными латинскими буквами, если такое слово можно прочитать, двигаясь по кругу, и NO в противном случае.
Примеры
№ Входные данные Выходные данные
1 abcdefg
abd
NO
2 abcdg
bag
YES
3 a
aaa
YES
Сколько всего натуральных чисел состоят из не менее чем a цифр и не более, чем b цифр?

Входные данные
Вводятся два произвольных натуральных числа a и b через пробел. Каждое не превышает 10000.

Выходные данные
Выведите одно число: количество чисел, обладающих указанным свойством.
Примеры
№ Входные данные Выходные данные
1 1 2 99
2 1 1 9
✓ 252✗ 1 666500лёгкаяВойти и решать
Васе подарили два ежедневника на i-й год. Один он использовал в i-м году и теперь интересуется, когда наступит следующий год с точно таким же календарем, чтобы он мог воспользоваться вторым ежедневником.

Входные данные
Вводится одно натуральное число i, не превышающее 2011.

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

Примеры
№ Входные данные Выходные данные
1 2011 2022
2 1 7
Магическим квадратом называют таблицу, в которой записаны числа 123…  по одному разу, так что сумма чисел в каждой строке и в каждом столбце равные. Мы расскажем вам об одном из методов построения магических квадратов (его называют сиамским). Он годится только для построения квадратов с нечетной стороной (3355…) .

Поставим число 1 в верхнюю клетку центрального столбца. Далее будем двигаться по диагонали вправо-вверх, расставляя в клетки последовательно числа 234… . Если мы вышли за пределы таблицы вверх, то нужно перейти к нижней клетке того же столбца и продолжить с нее. Если мы вышли за правую границу, нужно перейти к левой клетке той строки, куда мы должны были попасть. Если же мы одновременно вышли и вверх, и вправо, то нужно перейти в левую нижнюю клетку квадрата.

Если в следующей клетке на нашем пути уже стоит число, то вместо хода “вправо-вверх” нужно сделать ход “вниз” (опять же, если мы при этом выйдем за границы квадрата, нужно перейти к верхней клетке того же столбца). Примеры для квадратов 33 и 55 показаны на рисунках.



Входные данные
На вход подается одно натуральное нечетное число N, не превосходящее 30 – размер квадрата.

Выходные данные
Выведите числа, записанные в квадрате. Выравнивать числа по столбцам не обязательно. Обратите внимание: требуется вывести именно магический квадрат, полученный применением указанного метода.
Примеры
№ Входные данные Выходные данные
1 3 8 1 6 
3 5 7 
4 9 2 
2 5 17 24 1 8 15 
23 5 7 14 16 
4 6 13 20 22 
10 12 19 21 3 
11 18 25 2 9 
Вы когда-нибудь задумывались над тем, как отличить хорошие стихи от посредственных?

Нет? А вот редактор литературного журнала занимается этим каждый день, получая тонны корреспонденции от молодых авторов, желающих стать известными поэтами. Благо, в последнее время большая часть стихов присылается по электронной почте, поэтому у редактора возникла мысль автоматизировать процесс. Он твердо уверен, что стихи тем лучше, чем точнее в них рифма. Он считает две строки зарифмованными, если у них совпадает несколько последних букв. И чем больше букв совпадает, тем лучше зарифмованы строки. Например, у строк “палка” и “веревка” совпадают только пары последних букв “ка”, а у строк “олимпиада” и “рая и ада” совпадают четыре буквы (пробелы мы пропускаем). Поэтому вторая рифма лучше. Редактор считает, что в четверостишии (четыре строки) первая строка должна рифмоваться с третьей, а вторая – с четвертой. Для каждой из этих двух пар строк он считает количество совпадающих последних символов и из этих двух чисел выбирает наибольшее. Полученное число он называет коэффициентом качества стихотворения – чем он выше, тем больше шансов у стихотворения быть опубликованным. Помогите редактору – напишите программу, которая определяет качество стихотворения. И кто знает, может быть, благодаря вашим усилиям, мир познакомится с гениальными стихами (см. первый пример).

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

Выходные данные
Выведите одно число – коэффициент качества стихотворения.
 
№ Входные данные Выходные данные
1 yapomnyuchudnoemgnovenje
peredomnojyavilasty
kakmimoletnoevidenje
kakgenijchistoykrasoty
4
2 eto
vovse
ne
stihi
0
3 etootlichnyestihi
etootlichnyestihi
etootlichnyestihi
etootlichnyestihi
17
✓ 89✗ 137600лёгкаяВойти и решать
Два автомобиля движутся по кольцевой дороге длины L в противоположных направлениях. Они начинают движение из одной точки и едут с постоянными скоростями v1 и v2 соответственно. Требуется определить, на каком расстоянии друг от друга они окажутся в момент времени T.

Входные данные
На вход подаются 4 натуральных числа L, v1, v2, T, разделенных пробелом. Все числа не превосходят 100.

Выходные данные
Выведите расстояние между автомобилями в момент времени T – длину кратчайшей из двух дуг дороги между автомобилями.
 
№ Входные данные Выходные данные
1 10 1 2 1 3
2 10 2 3 2 0
Дети решили поиграть в догонялки, и, чтобы выбрать водящего, встали в круг и стали считаться. Для этого они использовали считалочку. Показывая пальцем по очереди на каждого стоящего в кругу, считающий произносит одно слово, и тот, на кого придется последнее слово, и будет водить. Требуется по данной считалочке определить, кто же будет водить.

Входные данные
В первой строке вводится считалочка. Она состоит из слов, записанных латинскими буквами. Слова разделены одним пробелом. Знаков препинания нет, строка начинается и заканчивается буквой. В считалочке не менее двух слов, а длина строки не превосходит 100.

Во второй строке в том же формате вводится список имен школьников в том порядке, в котором они стоят по кругу. Считать начинают с первого школьника. Детей не менее двух, а длина строки не превосходит 100.

Выходные данные
Выведите имя школьника, которому предстоит водить.
 
№ Входные данные Выходные данные
1 To be or not to be
John Mary Ann Kate
Mary
2 Na zolotom kryltse sideli
Vasya Vasya Vasya
Vasya
✓ 30✗ 26800средняяВойти и решать
Вася учится делить с остатком. Он взял некоторое число, разделил его на 2 и отбросил остаток. То, что получилось, разделил на 3 и опять отбросил остаток. Полученное число он разделил на 4, отбросил остаток и получил число K. Какое число мог выбрать Вася изначально?

Входные данные
Вводится натуральное число K, не превосходящее 1 000 .

Выходные данные
Выведите все возможные числа, которые мог выбрать изначально Вася, по возрастанию, разделяя их пробелами.
Примеры
№ Входные данные Выходные данные
1 1 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 
✓ 260✗ 585500лёгкаяВойти и решать
Двое играют в такую игру. Первый называет число, затем второй называет число. Если число второго больше, то он выиграл, в противном случае (даже если числа равны), выиграл первый. Помогите второму игроку – напишите программу, которая будет за него успешно играть в эту игру.

Входные данные
Вводится натуральное число A, которое назвал первый игрок (в числе А  не больше 100 цифр).

Выходные данные
Выведите одно натуральное число – какой-нибудь (любой!) выигрышный ход второго игрока.
Примеры
№ Входные данные Выходные данные
1 1 2
2 1000000000000000 1000000000000009
✓ 94✗ 68300лёгкаяВойти и решать
Петя долго готовился к сдаче ЕГЭ по информатике. Он научился решать все задачи, и лишь задачу А12 ему научиться решать не удалось. Но он надеется тайно пронести на экзамен ноутбук, и просит вас написать программу, которая ему поможет. Вот как выглядит эта трудная задача в демоверсии варианта ЕГЭ 2010 года:
"А12. Витя пригласил своего друга Сергея в гости, но не сказал ему код от цифрового замка своего подъезда, а послал следующее 5М5-сообщение:
"В последовательности цифр 3182 все цифры больше 5 разделить на 2 (при необходимости отбросив остаток), а затем удалить из полученной последовательности все четные цифр".
Какой код получил Сергей, выполнив указанные в сообщении действия?"

Входные данные
Вводятся 4 цифры в одной строке без пробелов – последовательность, содержащаяся в SMS-сообщении в реальном варианте ЕГЭ вместо 3182 в демоверсии.

Выходные данные
Выведите код цифрового замка без пробелов.
Примеры
№ Входные данные Выходные данные
1 0586 53
Вася, Петя и Коля играли в теннис навылет (проигравший пропускал следующую партию, уступая свое место третьему). Вася утверждает, что сыграл x партий, Петя – что сыграл y партий, Коля – z партий.

Определите, могло ли такое быть.

Входные данные
Вводятся три целых неотрицательных числа x, y, z, не превосходящих 1 000.

Выходные данные
Выведите YES (заглавными буквами), если такое могло быть, и NO в противном случае.
Примеры
№ Входные данные Выходные данные
1 3 1 2 YES
2 1 1 1 NO
Подсчитайте количество натуральных чисел на отрезке от a до b, сумма цифр которых четна.

Входные данные
Вводится два натуральных числа a и b, не превосходящие миллиарда (a ≤ b).
Выходные данные
Выведите одно число – количество чисел, больших либо равных a и меньших либо равных b, имеющих четную сумму цифр.
Примеры
№ Входные данные Выходные данные
1 1 5 2
2 10 10 0
В однокруговом турнире без ничьих участвовало N команд (каждая сыграла с каждой по одному матчу). Победителями считаются все команды, которые выиграли не меньше партий, чем остальные. Какое наибольшее количество победителей может быть в таком турнире?

Входные данные
Вводится одно натуральное число, не превосходящее 1000 – количество команд.

Выходные данные
Выведите одно число – наибольшее возможное количество победителей в таком турнире.
Примеры
№ Входные данные Выходные данные
1 2 1
Поделиться
Класснуть