Условный оператор

280 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
В один из летних дней Аркадий со своими родителями отправился в автомобильное путешествие. Он очень надеялся, что за городом им удастся избежать ненавистных пробок. Но, увы, уже через час они попали в затор. Аркадий загрустил и задумался о том, с какой скоростью они могли бы ехать, если бы не было пробки... Участок дороги, на котором они сейчас находятся, — однополосный. А это значит, что обгонять едущие впереди машины не представляется возможным. Т. е. какой бы мощной машина ни была, она все равно не сможет ехать быстрее, чем машина впереди неё. Аркадий хорошо разбирается в машинах и поэтому знает максимальные скорости тех машин, которые едут впереди. Теперь он хочет понять, с какой максимальной скоростью могла бы ехать каждая машина на данном участке.

Входные данные
В первой строчке дано число N (1 ≤ N ≤ 200) — количество машин в пробке. В следующих N строчках записано по одному целому числу в каждой, причем в i-й строчке записана скорость i-й машины. Скорость каждой из машин не превышает 300. Считается, что (i + 1)-я машина едет за i-й, а первая машина может ехать со своей максимальной скоростью.

Выходные данные
Выведите N чисел — скорости машин, с которыми они могли бы ехать на данном участке.
Примеры
Входные данные Выходные данные
1 2
80
100
80 80
Ваня не очень-то любит людей, но, к сожалению, ему иногда все-таки приходится ездить на метро. В таких случаях ему помогают две вещи: наушники с любимыми «Scoprions» и правильно выбранное место. Поскольку Ваня хочет быть как можно дальше от всех людей, правильным местом считается такое место, расстояние от которого до ближайшего из соседей будет максимально возможным в вагоне. В вагоне N мест и они все расположены вдоль одной стены, причем вход в вагон находится у места с номером 1. Места идут подряд, без пропусков. Ваня понимает, что иногда правильных мест может быть несколько, и хочет сесть на ближайшее ко входу правильное место (то есть правильное место с минимальным номером).

Угадайте, какое место в вагоне займет Ваня.

Входные данные
В первой строке записано число N (1 ≤ N ≤ 105). В следующей строке через пробел записаны N чисел — 0 или 1. Число 0 обозначает свободное место, 1 — занятое; места нумеруются слева направо. Гарантируется, что хотя бы одно место свободно.

Выходные данные
Выведите номер места, на которое Ваня сядет.
Примеры
Входные данные Выходные данные
1 8
1 0 1 0 0 1 0 1
2
2 7
0 1 0 0 0 1 0
4
3 4
0 0 0 1
1
У Славы очень много друзей, и ему очень нравится с ними встречаться. Но, к сожалению, все друзья Славы живут в разных городах (каждый в своем), до которых Слава из своего Большого Города может добраться только на электричках. Каждый раз, когда Слава решает навестить кого-нибудь из своих друзей, перед ним встает нелегкий выбор — к кому же именно поехать на этот раз. Всех своих друзей Слава очень любит и не хочет никого обидеть. Поэтому он поступает следующим образом: в некоторый момент времени Слава выходит из дома и едет на вокзал. После приезда на вокзал Слава садится в ближайшую электричку, которая едет к одному из его друзей. По известному времени приезда Славы на вокзал помогите ему узнать, к какому именно другу он сегодня поедет.

Входные данные
В первой строке входных данных содержатся числа M (1 ≤ M ≤ 105) — количество электричек, которые отправляются с вокзала, и время T, в которое Слава приезжает на вокзал (0 ≤ T ≤ 109). Далее следует M строк, в каждой из которых содержится два числа ti (0 ≤ ti ≤ 109, все ti различны) и fi (1 ≤ fi ≤ 109), где ti — время отправления i-й электрички(все ti различны), а fi соответствует номеру друга, к которому идет i-я электричка. Гарантируется, что есть хотя бы одна электричка, которая отправляется позже, чем момент времени T.

Выходные данные
Выведите одно число — номер друга, к которому сегодня поедет Слава.
Примеры
Входные данные Выходные данные Пояснение
1 5 74
28 3
85 2
6 1
5 3
72 1
2 Считается, что Слава успевает на i-ю электричку только в том случае, если он приезжает раньше момента её отправления, т. е. T < ti.
Как непросто быть школьником! Именно такие мысли чаще всего посещают Петю после уроков математики. Сегодня учительница рассказывала, что такое простые числа. Петя впервые услышал о них. Оказывается, простое число — это такое натуральное число, которое имеет ровно два различных натуральных делителя, то есть делится без остатка только на единицу и на само себя. После урока Петя и его друг Сережа придумали такую игру: один называет два числа A и B, а другой говорит, сколько нулей на конце произведения всех простых между A и B включительно. Петя заметил, что Сережа отвечает на вопрос намного быстрее, чем он сам, и очень просит вас ему помочь. Напишите для Пети программу, которая будет отвечать на вопросы Сережи.

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

Выходные данные
Выведите количество нулей, на которое заканчивается произведение всех простых чисел на отрезке от A до B.
Примеры
Входные данные Выходные данные
1 1 7 1
2 3 3 0
На соревнованиях по прыжкам на лыжах с трамплина техника прыжка оценивается пятью судьями. Каждый судья ставит оценку от 1 до 20, после чего одна наименьшая и одна наибольшая оценки отбрасываются. Вам нужно написать программу, которая будет демонстрировать результаты прыжка для телетрансляции.

Она должна выводить пять оценок, которые поставили судьи, не меняя их порядка, а затем их сумму, и при этом брать в скобки те оценки, которые не учитываются при расчете суммы

Входные данные
На вход подается 5 натуральных чисел от 1 до 20, разделенных пробелом.

Выходные данные
Выведите те же числа в том же порядке, взяв в скобки минимальное (а если их несколько – самое левое из них) и максимальное (а если их несколько – самое правое из них) число, а также сумму всех чисел, не взятых в скобки. Все числа (включая сумму) должны быть напечатаны в одной строке и разделены одним пробелом (внутри скобок пробелов быть не должно). Перед суммой должен стоять знак равенства, отделенный слева и справа одним пробелом. Порядок оценок должен быть такой же, как и во входных данных.
Примеры
Входные данные Выходные данные
1 1 2 3 4 5 (1) 2 3 4 (5) = 9
2 10 11 10 11 10 (10) 11 10 (11) 10 = 31
Петя долго готовился к сдаче ЕГЭ по информатике. Он научился решать все задачи, и лишь задачу А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
Будильник в сотовом телефоне можно настроить так, чтобы он звонил каждый день в одно и то же время, либо в указанное время в определенный день недели. Независимо можно настроить несколько будильников.

По информации о будильниках и текущему времени и дню недели определите, когда прозвонит очередной будильник.

Входные данные
В первой строке вводятся три числа, задающие текущее время: день недели (от 1 до 7), часы и минуты.

Во второй строке вводится одно натуральное число N, не превосходящее 100 – количество будильников.

В следующих N строках вводятся описания N будильников. Описание каждого будильника состоит из трех чисел: дня недели (число от 1 до 7 для понедельника,  …, воскресенья, соответственно, 0 – если будильник должен звонить каждый день), часов (от 0 до 23), минут (от 0 до 59).


Выходные данные
Выведите  через пробел три числа, задающие день недели, часы и минуты, когда прозвонит ближайший будильник.
 
Примеры
Входные данные Выходные данные Пояснение
1 2 10 20
2
1 23 15
0 10 10
3 10 10  
2 7 1 1
3
7 0 59
7 23 59
7 1 1
7 1 1 Во втором примере третий будильник будет звенеть в начальный момент времени.
Конь#38209
На доске размером KxN клеток (K строк, N столбцов) в j-й строке и i-м столбце стоит шахматный конь. Может ли он за один или несколько ходов попасть в клетку в m-й строке и s-м столбце?

Входные данные
Вводятся 6 натуральных чисел: K, N, j, i, m, s (1 ≤ K ≤ N ≤ 100). Клетки (i, j) и (s, m) не совпадают.

Выходные данные
Выведите слово YES, если такое возможно, и NO в противном случае.

Примеры
Входные данные Выходные данные
1 8 8 1 2 7 8 YES
В доме несколько подъездов. В каждом подъезде одинаковое количество квартир. Квартиры нумеруются подряд, начиная с единицы. Может ли в некотором подъезде первая квартира иметь номер x, а последняя – номер y?

Входные данные
Вводятся два натуральных числа x и y (x ≤ y), не превышающие 10 000.

Выходные данные
Выведите слово YES (заглавными латинскими буквами), если такое возможно, и NO в противном случае.

Примеры
Входные данные Выходные данные
1 11 15 YES
2 2 10 NO
Вводится натуральное число. Требуется разделить запятыми тройки его цифр (считая справа).

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

Выходные данные
Вывести то же число, разделяя тройки цифр запятыми.

Примеры
Входные данные Выходные данные
1 1000 1,000
2 12345678 12,345,678
3 999 999
Вася выложил в ряд слева направо 100 карточек, на которых написаны числа 1, 2, 3, …, 100 соответственно (числами вниз). После этого он поменял местами карточки, на которых написаны числа i и j. Петя открывает карточки по очереди слева направо. Какое минимальное количество карточек ему придется открыть, чтобы точно выяснить, какие карточки поменял местами Вася?

Входные данные
Вводятся два числа i (1 ≤ i ≤ 100) и j (1 ≤ j ≤ 100). Числа записаны через пробел.

Выходные данные
Требуется вывести одно число – минимальное количество карточек, которое достаточно открыть Пете.
 
Примеры
Входные данные Выходные данные
1 10 20 10
Натуральные числа записаны в (бесконечную) таблицу, как показано на рисунке.


Требуется по заданному числу вывести всех его соседей (числа, записанные в клетках сверху, справа, слева и снизу, если таковые имеются)

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

Выходные данные
Программа должна вывести все числа, записанные в соседних клетках с данным, в порядке возрастания. Числа должны разделяться пробелом.
Примеры
Входные данные Выходные данные
1 1 3
2 7 3 6 8 13
Решите в целых числах уравнение:

\( { \sqrt{ax +b}} = c\)

a, b, c – данные целые числа: найдите все решения или сообщите, что решений в целых числах нет.

Входные данные
Вводятся три числа a, b и c, разделенные пробелами.

Выходные данные
Программа должна вывести все решения уравнения в порядке возрастания, либо NO SOLUTION (заглавными буквами), если решений нет. Если решений бесконечно много, вывести MANY SOLUTIONS. 
Примеры
Входные данные Выходные данные
1 1 0 0 0
2 1 2 -3 NO SOLUTION
Сегодня в индийском городке Старый Гоа отмечают День святого Франциска Ксавьера. Святой Франциск Ксавьер – миссионер, член ордена иезуитов, считается величайшим католическим миссионером Нового времени.

Мощи святого Франциска Ксавьера – духовного покровителя индийских христиан – покоятся в Старом Гоа в известном католическом храме – Базилике Бом Иисус. Со дня постройки храма в 1605 году раз в десять лет мощи святого выставляются для всеобщего обозрения.

Индийский крестьянин Вирмарам  – человек очень набожный, он не упускал случая коснуться святых мощей. Зная годы его жизни, определите, сколько раз он мог коснуться святых мощей (считается, что в год своего рождения он не мог этого сделать, а в год смерти – мог).

Входные данные
Вводятся два натуральных числа – год рождения и год смерти. Числа разделены пробелом. Оба числа не превосходят 2000.
Выходные данные
Программа должна  определить, сколько раз крестьянин мог коснуться святых мощей,  и вывести ответ - одно число.
 
Примеры
Входные данные Выходные данные
1 1610 1640 3
2 1615 1645 3
Витя работает недалеко от одной из станций кольцевой линии Московского метро, а живет рядом с другой станцией той же линии. Требуется выяснить, мимо какого наименьшего количества промежуточных станций необходимо проехать Вите по кольцу, чтобы добраться с работы домой.

Входные данные
Станции пронумерованы подряд натуральными числами 1, 2, 3, …, N (1-я станция – соседняя с N-й), N не превосходит 100.

Вводятся три числа: сначала N – общее количество станций кольцевой линии, а затем i и j – номера станции, на которой Витя садится, и станции, на которой он должен выйти. Числа i и j не совпадают. Все числа разделены пробелом.

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

Примеры
Входные данные Выходные данные Пояснения
1 100 5 6 0 На кольцевой линии 100 станций; проехать с 5-й на 6-ю станцию Витя может напрямую, без промежуточных станций
2 10 1 9 1 На кольцевой линии 10 станций; проехать с 1-й на 9-ю станцию Витя может через одну промежуточную, ее номер 10

Пароль называется криптостойким, если он включает в себя и строчные латинские буквы, и заглавные латинские буквы, и цифры, при этом его длина должна быть не менее 8 символов.
Требуется по данному паролю определить, является ли он криптостойким.

Входные данные

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

Выходные данные

Выведите слово YES, если указанный пароль является криптостойким, и NO – в противном случае (заглавными латинскими буквами).

Примеры
Входные данные Выходные данные
1 e NO
2 AAAbbb123 YES
Иван-дурак (Иванушка-дурачок) — один из популярнейших героев русских, а также белорусских и украинских волшебных сказок. Иван-дурак на самом деле не глупый, а всего лишь последний ребенок в семье. Поскольку он третий сын, ему не положена доля в наследстве. Любил Иван в свободное время пострелять из лука. Запуская очередной раз стрелы, Иван решил посмотреть, какую фигуру они образуют, если соединить точки падения стрел. Хоть Иван и не глуп, но в вашей помощи все-таки нуждается.
Известны координаты трех точек на плоскости, куда упали стрелы Ивана. Определите взаимное расположение стрел.

Входные данные: На вход программе подаются 6 чисел: x1, y1, x2, y2, x3, y3. Все числа целые, по модулю не превосходят 100. Они задают 3 точки плоскости: a(x1, y1), b(x2, y2), c(x3, y3).
Выходные данные: Следует определить взаимное расположение точек и выдать на экран код ситуации:

0 — 3 точки совпадают;
1 — ровно 2 точки из трех совпадают;
2 — точки не совпадают, лежат на одной прямой;
3 — точки образуют остроугольный треугольник;
4 — точки образуют прямоугольный треугольник;
5 — точки образуют тупоугольный треугольник.

 
Примеры
Входные данные Выходные данные
1 1 1 1 1 1 1 0
2 0 0 3 0 0 4 4
Поделиться
Класснуть