| | |
Делим шоколадку
Условный оператор
Шоколад - одно из любимейших лакомств на планете. Вилли утверждает, что шоколад облегчает концентрацию внимания, повышает скорость обработки информации и улучшает память. Вилли всегда берет на партию шоколадку. У Вилли всегда имеется шоколадка прямоугольной формы, разделенной на \(n \cdot m\) долек. Он хочет оставить на следующую партию часть шоколадки, состоящей из k долек. Причем шоколадку он хочет разломить один раз по прямой на две части. Определите, получится ли у Вилли таким образом отломить от шоколадки ровно k долек.
Входные данные
Программа получает на вход три числа: n , m , k .
Выходные данные
Программа должна вывести одно из двух слов: YES или NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
2
6 |
YES |
2 |
2
10
7 |
NO |
| |
|
Ход короля
Условный оператор
Король – это особая в шахматах фигура. Его ценность несравнима с ценностью остальных фигур – с его потерей партия сразу заканчивается.
Поэтому шахматный король бесценен! Но он тоже имеет право вести бой. Король может закрыть путь трём пешкам. А в паре с пешкой он может доставить неприятности самым сильным фигурам. Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку.
Поможем Вилли запрограммировать ход шахматного короля.
Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом.
Входные данные
Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Каждое число задается в отдельной строке.
Выходные данные
Программа должна вывести YES , если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
4
5
5 |
YES |
| |
|
Вычисления по правилу - 1
Условный оператор
Даны целых числа X и Y . Вычислите число Z , по следующему правилу:
Z = X + Y , если X <= Y ;
Z = 1 - X + Y , в противном случае.
Входные данные:
С клвиатуры вводится 2 целых числа X и Y.
Выходные данные
Необходимо вывести на экран значение переменной Z.
Пример
№ теста |
Входные данные |
Выходные данные |
1 |
5 6 |
11 |
2 |
6 5 |
0 |
| |
|
Вычисления по правилу - 2
Условный оператор
Дано целое число. Если число положительное, то вывести его на печать; если отрицательное - вывести число, умноженное на –1.
Входные данные: с клавиатуры вводится одно число
Выходные данные: необходимо вывести на экран само число, если оно положительное, или число умноженное на -1, в противном случае
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
3 |
3 |
2 |
-3 |
3 |
| |
|
Вычисления по правилу - 3
Условный оператор
Дано четыре целых числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень - отрицательные
Входные данные: с клавиатуры вводится четыре целых числа
Выходные данные: необходимо вывести на экран преобразованные числа (выводить числа в той же последовательности, что и вводимые)
Пример входных и выходных данных
№ теста |
Входные данные |
Выходные данные |
1 |
3 5 -2 -4 |
9 25 16 256 |
| |
|
Сумма или произведение
Условный оператор
Целые числа
С клавиатуры вводится целое число X (\(100<=X<=9999\)). Если число четырехзначное, то найти сумму его цифр, а если трехзначное, то произведение цифр данного числа.
Входные данные
На вход подается целое число X (\(100<=X<=9999\))..
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
125 |
10 |
2 |
1253 |
11 |
| |
|
Сравнение цифр числа
Целые числа
Условный оператор
Дано двузначное число. Выведите на экран слово YES , если цифры этого числа одинаковы и слово NO - если цифры разные.
Входные данные
С клавиатуры вводится одно число.
Выходные данные
Выведите на экран слово YES , если цифры заданного числа одинаковы, или слово NO - если цифры разные.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
65 |
NO |
2 |
55 |
YES |
| |
|
Первая или вторая
Целые числа
Условный оператор
Дано двузначное число, у которого цифры различны. Выведите на экран слово first , если первая цифра больше второй, и слово second - если вторая цифра больше первой.
Входные данные
С клавиатуры вводится положительное двузначное число.
Выходные данные
Выведите на экран слово first , если первая цифра больше второй, и слово second - если вторая цифра больше первой.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
65 |
first |
2 |
56 |
second |
| |
|
Сумма кратна 5
Целые числа
Условный оператор
Дано трехзначное число. Определить, кратна ли 5 сумма его цифр. Вывести на экран слово YES или NO .
Входные данные
На вход подается положительно трехзначное число.
Выходные данные
Выведите на экран ответ слово YES , если сумма цифр исходного числа кратна 5, в противном случае выведите слово NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
473 |
NO |
2 |
451 |
YES |
| |
|
Счастливое число
Целые числа
Условный оператор
Дано шестизначное число. Определите является ли оно счастливым (сумма первых трех цифр равна сумме последних трех). Если число счастливое, выведите на экран слово HAPPY , в противном случае выведите на экран слово NO .
Входные данные
На вход подается положительное шестизначное число.
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
111111 |
HAPPY |
2 |
134211 |
NO |
| |
|
Максимальная цифра числа
Целые числа
Условный оператор
Дано четырехзначное число. Определите максимальную цифру числа.
Входные данные
На вход подается положительное четырехзначное число.
Выходные данные
Выведите на экран ответ на задачу.
Пример
№ |
Входные данные |
Выходные данные |
1 |
4731 |
7 |
| |
|
Сколько четверок в числе
Условный оператор
Целые числа
Дано трехзначное число. Определите сколько раз входит в него цифра 4.
Входные данные
На вход подается положительное трехзначное число.
Выходные данные
Выведите на экран ответ ответ на задачу.
Пример
№ |
Входные данные |
Выходные данные |
1 |
473 |
1 |
| |
|
Различные цифры числа
Условный оператор
Целые числа
Дано трехзначное число. Выведите на экран слово YES , если все цифры числа различные и слово NO в противном случае.
Входные данные
На вход подается положительное трехзначное число.
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
123 |
YES |
2 |
112 |
NO |
| |
|
Тип треугольника
Условный оператор
Даны три стороны треугольника a, b, c. Определите тип треугольника с заданными сторонами. Выведите одно из четырех слов: rectangular для прямоугольного треугольника, acute для остроугольного треугольника, obtuse для тупоугольного треугольника или impossible , если треугольника с такими сторонами не существует.
Входные данные: Вводятся три натуральных числа.
Выходные данные: Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
4
5 |
rectangular |
2 |
1
2
3 |
impossible |
| |
|
Склад ноутбуков
Условный оператор
На склад, который имеет форму прямоугольного параллелепипеда, привезли ноутбуки, упакованные в коробки. Каждая коробка также имеет форму прямоугольного параллелепипеда. По правилам хранения коробки с ноутбуками должны быть размещены на складе с выполнением следующих двух условий:
1. Стороны коробок должны быть параллельны сторонам склада.
2. Коробку при помещении на склад разрешается расположить где угодно (с выполнением предыдущего условия), в том числе на другой коробке, но все коробки должны быть ориентированы одинаково (т.е. нельзя одну коробку расположить “стоя”, а другую —“лежа”)
Напишите программу, которая по размерам склада и размерам коробки с ноутбуком определит максимальное количество ноутбуков, которое может быть размещено на складе.
Входные данные: Программа получает на вход шесть натуральных чисел. Первые три задают длину, высоту и ширину склада. Следующие три задают соответственно длину, высоту и ширину коробки с ноутбуком.
Выходные данные: Программа должна вывести одно число — максимальное количество ноутбуков, которое может быть размещено на складе.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
100
200
300
1
2
3 |
1000000 |
2 |
100
200
300
3
2
1 |
1000000 |
3 |
100
100
1
2
2
2 |
0 |
4 |
7
7
7
3
3
3 |
8 |
| |
|
Билеты в метро - 2
Условный оператор
Давным-давно цены на билеты были такими:
1 поездка — 15 рублей,
5 поездок — 70 рублей,
10 поездок — 125 рублей,
20 поездок — 230 рублей,
60 поездок — 440 рублей.
Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов — минимальна.
Входные данные: Программа получает на вход одно число n.
Выходные данные: Программа должна вывести пять целых чисел: количество билетов на 1, 5, 10, 20, 60 поездок, которое необходимо приобрести. Если для какого-то данного n существует несколько способов приобретения билетов одинаковой суммарной стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 |
1 0 0 0 0 |
2 |
7 |
2 1 0 0 0 |
| |
|
Сумма цифр числа
Целые числа
Условный оператор
Дано двузначное число. Определите является ли сумма его цифр двузначным числом. Если нет, то через сколько чисел встретиться первое двузначное число, удовлетворяющее этому условию.
Входные данные
С клавиатуры вводится одно число N (\(10 <= N <= 99\)).
Выходные данные
Выведите на экран слово YES , если сумма цифр числа N - двузначное число, иначе вывести на экран число, которое показывает через сколько чисел от исходного N встретиться первое число, сумма цифр которого будет двузначным числом.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
65 |
YES |
2 |
25 |
3 |
| |
|
Входят ли цифры в число
Условный оператор
Дано трехзначное число. Определить входят ли в него цифры 3, 6 или 9.
Входные данные
На вход программе подается одно число N \(( 100 <= N <= 999 )\).
Выходные данные
Вывести YES , если цифры 3, 6 или 9 входят в число, иначе вывести NO.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
359 |
YES |
2 |
125 |
NO |
| |
|
Шахматная доска
Условный оператор
Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово YES , а если в разные цвета – то NO .
Входные данные: Вводятся 4 числа - координаты клеток.
Выходные данные: Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
1
2
2 |
YES |
2 |
1
1
2
3 |
NO |
| |
|
Крещенские купания
Условный оператор
Во время Крещенских купаний Вилли любит окунуться в прорубь, которая представляет собой прямоугольник размером \( N х M\) метров. Для большей смелости Вилли опускает на воду деревянную шахматную доску и идёт переодеваться. После этого он возвращается, и видит, что доска находится на расстоянии x метров от одной из длинных сторон (не обязательно от ближайшей) и y метров от одной из коротких сторон. Плыть за доской он просто обязан. Какое минимальное расстояние необходимо преодолеть Вилли, чтобы доплыть до своей шахматной доски (размерами доски можно пренебречь)?
Входные данные
Программа получает на вход числа N , M , x , y .
Выходные данные
Программа должна вывести число метров, которое нужно преодолеть Вилли до доски.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
23
52
8
43 |
8 |
| |
|
Шахматный набор
Условный оператор
Вилли ездит на соревнования всегда с двумя наборами шахмат. Набор шахмат представляет из себя складную шахматную доску, внутрь которой можно положить фигуры. Для экономии места в багаже, Вилли всегда складывает все фигуры в одну коробку, и эту коробку кладет внутрь другой коробки.
Перед очередными соревнованиями он пошел в магазин за новыми шахматными наборами. Он выбрал два набора шахмат. Первый набор имеет размер доски в сложенном виде\( A_1 \cdot B_1 \cdot C_1\), второй - размером \( A_2 \cdot B_2 \cdot C_2\).
Вилли хочет узнать, поместится ли один шахматный набор внутрь другого, при условии, что поворачивать доски можно только на 90 градусов вокруг ребер.
Входные данные
Программа получает на вход числа A1 , B1 , C1 , A2 , B2 , C2 .
Выходные данные
Программа должна вывести одну из следующих строчек:
Boxes are equal , если оба набора одинаковые,
The first box is smaller than the second one , если первый набор может быть положен во второй,
The first box is larger than the second one , если второй набор может быть положен в первый,
Boxes are incomparable , во всех остальных случаях.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
2
3
3
2
1 |
Boxes are equal |
2 |
3
4
5
2
4
6 |
Boxes are incomparable |
| |
|
Олимпийские игры
Условный оператор
Всем известно, что в 2012 году прошла Летняя Олимпиада в Лондоне, однако не каждый знаком с историей крупнейших спортивных соревнований. Традиция игр зародилась в Древней Греции, но была забыта по завершении античной эпохи и вновь появилась лишь в конце XIX века благодаря французскому общественному деятелю Пьеру де Кубертену.
С 1896 года вновь проводятся летние Олимпийские игры, а с 1924 — зимние, причём оба вида соревнований проходят раз в четыре года. Первое время зимняя и летняя Олимпиады проводились в один и тот же год, но в конце XX века Международный олимпийский комитет принял решение установить между разными видами Игр двухгодичный перерыв. Таким образом, 1992 год был в последний раз отмечен проведением одновременно летних и зимних Олимпийских игр, в 1994 проводились только зимние, в 1996 — летние, и с тех пор они продолжают чередоваться.
Известно также, что в 1916, 1940 и 1944 годах Олимпийские игры были отменены по причине Первой и Второй мировых войн, а в 1906 году проводилась внеочередная Олимпиада.
Требуется написать программу, которая по заданному году определит, проводились ли в этом году Олимпийские игры и были ли они летними или зимними.
Входные данные: На вход программе подаётся одно натуральное число N (1800 ≤ N ≤ 2014) — номер года.
Выходные данные: Выведите «winter», если в этом году была проведена только зимняя Олимпиада, «summer», если только летняя, «winter summer», если прошли обе олимпиады, и «nothing», если в этот год олимпийских игр не проводилось.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1896 |
summer |
2 |
1924 |
winter summer |
| |
|
Кондиционер
Условный оператор
В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.
Кондиционер может работать в следующих четырех режимах:
- «freeze» — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается.
- «heat» — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается.
- «auto» — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой.
- «fan» — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате.
Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.
Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.
Входные данные: Первая строка содержит два целых числа troom, и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50).
Вторая строка содержит одно слово, записанное строчными буквами латинского алфавита — режим работы кондиционера.
Выходные данные: Необходимо вывести дно целое число — температуру, которая установится в комнате через час.
Примечание:
В первом примере кондиционер находится в режиме нагрева. Через час он нагреет комнату до желаемой температуры в 20 градусов.
Во втором примере кондиционер находится в режиме охлаждения. Поскольку температура в комнате ниже, чем желаемая, кондиционер самостоятельно выключается и температура в комнате не поменяется.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10 20
heat |
20 |
2 |
10 20
freeze |
10 |
| |
|
Аншлаг!
Условный оператор
В одном из популярных кинотеатров все сеансы проходят с аншлагом, поэтому все места в зале всегда заняты. К сожалению, расстояние между рядами в кинозале маленькое, и зрители, пробираясь перед началом фильма к своим местам, вынуждены спотыкаться о ноги уже сидящих. Заходя в зал, зритель думает, с какой стороны ряда он будет пробираться к своему месту (с левой или с правой), и выбирает сторону так, чтобы споткнуться о меньшее число людей. В случае равенства зритель выбирает ту сторону, к которой его место ближе.
Вася, ярый любитель кино и столь же ярый ненавистник математики, первым купил билет на очередную премьеру. Когда Вася вошёл в зал и сел на своё место, он увидел, что все остальные кресла в его ряду ещё пустуют. Вася точно знал, что к началу сеанса зал заполнится до отказа, а это значило, что с минуты на минуту о его ноги начнут спотыкаться другие кинолюбители, пробирающиеся к своим местам. Несмотря на всю свою нелюбовь к математике, Вася мгновенно оценил, какое максимальное количество человек может спотнуться о его ноги, прежде чем все зрители займут свои места. А вы сможете?
Входные данные: Программа получает на вход два целые числа (по одному в строке) n и k — количество мест в том ряду, где сидит Вася, и номер его места соответственно (1≤k≤n≤50, n — чётно). Места в ряду нумеруются с единицы.
Выходные данные: Программа должна Вывести максимальное количество человек, которое может споткнуться о ноги Васи.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
1 |
1 |
| |
|
Электричка
Условный оператор
Вагоны в электричке пронумерованы натуральными числами, начиная с 1 (при этом иногда вагоны нумеруются от «головы» поезда, а иногда – с «хвоста»; это зависит от того, в какую сторону едет электричка). В каждом вагоне написан его номер.
Витя сел в i-й вагон от головы поезда и обнаружил, что его вагон имеет номер j. Он хочет определить, сколько всего вагонов в электричке. Напишите программу, которая будет это делать или сообщать, что без дополнительной информации это сделать невозможно.
Входные данные: На вход программы поступают два числа i и j (1 ≤ i ≤ 1000, 1 ≤ j ≤ 1000), разделенные пробелом.
Выходные данные: Выведите одно число — количество вагонов в электричке. Если однозначно определить количество вагонов нельзя, выведите число 0
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 4 |
6 |
| |
|
Олимпиада в Хогвартсе
Условный оператор
В Хогвартсе проходит традиционная ежегодная олимпиада по теории магии среди младшекурсников. Завхозу школы Аргусу Филчу поручили заняться распределением студентов по аудиториям.
Каждый факультет выставил своих лучших учеников на олимпиаду. От Гриффиндора участвует G студентов, от Слизерина S студентов, Пуффендуй представляет H студентов и Когтевран — R студентов. В распоряжении Филча находится M аудиторий. На аудитории наложено особое заклятие расширения, поэтому при необходимости они могут вместить любое количество студентов. При рассадке необходимо учесть, что ученики одного факультета, находящиеся в одной аудитории, могут, воспользовавшись случаем, начать жульничать, обмениваясь идеями по решению задач. Поэтому в любой аудитории количество студентов с одного факультета, попавших в нее, следует свести к минимуму. Назовем рассадку, удовлетворяющую такому требованию, оптимальной.
Помогите посчитать, какое минимальное количество студентов с одного факультета все же придется посадить в одной аудитории даже при оптимальной рассадке.
Входные данные: В первой строке идут четыре целых числа G, S, H и R (1 ≤ G, S, H, R ≤ 1000) — количество учеников, представляющих каждый из факультетов школы.
Во второй строке идет целое число M (1 ≤ M ≤ 1000) — количество классов в распоряжении у Филча.
Выходные данные: Выведите минимальное количество студентов с одного факультета, которое Филчу придётся посадить в одну аудиторию даже при оптимальной рассадке.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4 3 4 4
2 |
2 |
2 |
15 14 13 14
3 |
5 |
| |
|
Точка на координатной плоскости - 1
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1.5 0.25 |
YES |
2 |
1.5 -0.25 |
NO |
| |
|
Составление условий - 1
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
данное натуральное число a кратно числу b, но не кратно числу с
ПРИМЕР: (на вход подается три числа a, b, c через пробел )
входные данные:
24 12 3
выходные данные:
0
ПРИМЕР:
входные данные:
50 25 3
выходные данные:
1
| |
|
Составление условий - 2
Условный оператор
Логический тип
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
произведение натуральных чисел a и b кратно числу с
ПРИМЕР: (на вход подается три числа через пробел)
вход: 12 24 3
вывод: 1
ПРИМЕР:
вход: 27 24 5
вывод: 0
| |
|
Составление условий - 4
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
сумма двух натуральных чисел кратна 2
Формат входных данных
Программа получает на вход два натуральных числа: записанных в одной строке через пробел (оба числа не превышают 100)
Формат выходных данных
Выведите 1 или 0.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12 24 |
1 |
2 |
27 24 |
0 |
| |
|
Составление условий - 5
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
данное четырехзначное число читается одинаково слева направо и справа налево
ПРИМЕР:
вход: 1221
вывод: 1
ПРИМЕР:
вход: 2727
вывод: 0
| |
|
Составление условий - 6
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
целое число N является четным двузначным числом
Формат входных данных
Программа получает на вход одно натуральное число (число не превышает 1000)
Формат выходных данных
Выведите 1 или 0.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12 |
1 |
2 |
27 |
0 |
| |
|
Составление условий - 7
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
квадрат заданного двухзначного числа равен кубу суммы цифр этого числа
ПРИМЕР:
вход: 12
вывод: 0
ПРИМЕР:
вход: 27
вывод: 1
| |
|
Составление условий - 3
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
сумма цифр данного трехзначного числа является четным числом
ПРИМЕР:
вход: 123
вывод: 1
ПРИМЕР:
вход: 122
вывод: 0
| |
|
Составление условий - 8
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
сумма первых двух цифр заданного четырехзначного числа равна сумме двух его последних цифр
Формат входных данных
Программа получает на вход одно натуральное четырехзначное число
Формат выходных данных
Выведите 1 или 0.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1234 |
0 |
2 |
1221 |
1 |
| |
|
Составление условий - 9
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
цифры исходного четырехзначного числа N образуют строго возрастающую последовательность
входные данные
на вход подается число N (1000<=N<=9999)
выходные данные
1 - если все цифры числа образуют строго возрастающую последовательность
0 - в противном случае
ПРИМЕР:
вход: 1234
вывод: 1
ПРИМЕР:
вход: 1224
вывод: 0
| |
|
Составление условий - 10
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
данные числа х и у являются координатами точки, лежащей в первой координатной четверти
входные данные
на вход подаются два целых числа x и y (-10^5<x,y<10^5)
выходные данные
1 - данные числа х и у являются координатами точки, лежащей в первой координатной четверти
0 - в противном случае
| |
|
Составление условий - 11
Условный оператор
Составьте программу, которая печатает 1, если указанное высказывание является истинным, и 0 в противном случае
все цифры исходного четырехзначного числа различны
входные данные
на вход подается число N (1000<=N<=9999)
выходные данные
1 - если все цифры числа различны
0 - в противном случае
| |
|
Количество четных цифр
Целые числа
Условный оператор
Дано четырехзначное число. Определите сколько четных цифр в нем.
Входные данные
На вход подается четырехзначное положительное число.
Выходные данные
Выведите на экран ответ на задачу.
Пример
№ |
Входные данные |
Выходные данные |
1 |
4732 |
2 |
| |
|
Количество нечетных цифр
Условный оператор
Целые числа
Дано четырехзначное число. Определите сколько нечетных цифр в нем.
Входные данные
На вход подается четырехзначное положительное число.
Выходные данные
Выведите на экран ответ на задачу.
Пример
№ |
Входные данные |
Выходные данные |
1 |
4732 |
2 |
| |
|
Лифт
Вывод формулы
Условный оператор
Петру необходимо попасть с этажа A на этаж B. Для вызова лифта на всех этажах офисного здания, кроме первого и последнего, есть две кнопки – для перемещения вниз и перемещения вверх. В тот момент, когда Петр нажал нужную кнопку вызова, лифт находился на этаже C и вез одного пассажира на этаж D. Если лифт проезжает мимо этажа, на котором нажата кнопка вызова, и лифт движется в подходящем направлении, то лифт останавливается, чтобы посадить дополнительного пассажира. Лифт перемещается между соседними этажами за одну единицу времени, также одну единицу времени занимает остановка лифта на этаже для высадки или посадки пассажиров.
Напишите программу, вычисляющую, через сколько времени Петр доберется до этажа B, при условии, что никто больше не будет вызвать лифт.
Первая строка ввода содержит четыре целых числа A, B, C и D, разделенных одним пробелом (1 ≤ A, B, C, D ≤ 20, A≠B, C≠D, A≠C).
Вывести одно целое число – количество единиц времени от момента вызова лифта до момента, когда Петр выйдет из лифта на этаже B.
Ввод |
Вывод |
3 9 2 5 |
10 |
3 9 5 2 |
13 |
Примечание:
Пояснение к примеру 1
Лифт за 1 единицу времени доедет до 3-го этажа, остановится на 1 единицу времени, чтобы Петр сел в лифт, затем через 2 единицы времени доедет до 5-го этажа и остановится на 1 единицу времени для высадки предыдущего пассажира, через 4 единицы времени лифт довезет Петра до 9-го этажа, и через 1 единицу времени Петр выйдет из лифта.
| |
|
Надёжное крепление
Условный оператор
Уличный рекламный щит прикреплён к опоре при помощи трёх креплений. Первое крепление может выдерживать ветер, скорость которого не превосходит A м/c, второе крепление – B м/c, третье – C м/с. Сам щит будет надёжно закреплён, если как минимум два крепления из трёх выдерживают ветер данной скорости. Определите максимальную скорость
ветра, которую выдержит данный щит.
Программа получает на вход три целых положительных числа A, B, С, не превосходящие 2×109, – допустимые скорости ветра, которые выдерживают три крепления щита. Программа должна вывести одно число – максимальную скорость ветра, которую выдержит щит.
| |
|
Узник замка Иф
Условный оператор
За многие годы заточения узник замка Иф проделал в стене прямоугольное отверстие размером D ×E . Замок Иф сложен из кирпичей, размером A ×B ×C . Определите, сможет ли узник выбрасывать кирпичи в море через это отверстие, если стороны кирпича должны быть параллельны сторонам отверстия.
Входные данные
Программа получает на вход числа A , B , C , D , E .
Выходные данные
Программа должна вывести слово YES или NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
1
1
1
1 |
YES |
2 |
2
2
2
1
1 |
NO |
| |
|
Вывод чисел
Условный оператор
Даны два числа. Выведите на экран первое из них, если оно больше второго и оба числа, если это не так.
Входные данные
С клавиатуры вводится 2 целых числа.
Выходные данные
Необходимо вывести на экран первое число, если оно больше второго, или же вывести оба этих числа, если первое число не больше второго.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5 3 |
5 |
2 |
3 5 |
3 5 |
| |
|
Такие разные скорости
Условный оператор
Несколько фактов про скорости.
- Самое ветреное место - Земля Виктории, находящаяся в Антарктиде. Скорость ветра здесь доходит до 215 км/ч.
- Самая большая скорость игрушечного поезда - 10 км/ч.
- Самая медленная скорость в спорте была зарегистрирована 12 августа 1889 года - 1350 м/ч в перетягивании каната.
- Средняя скорость улиток составляет примерно 1,5 мм в секунду.
Скорости бывают разные: скорость чтения, скорость передачи информации, скорость полета птицы и т.д.
Ваша задача по известным двум скоростям (первая в километрах в час, вторая в метрах в секунду) определить, какая из скоростей больше. Скорости не равны. Вывединет на экран большую скорость.
Входные данные
На вход подаются два целых числа, по одному в строке:
- скорость в километрах в час (k );
- скорость в метрах в секунду (m ).
Выходные данные
Вывести наибольшую скорость, соблюдая формат вывода, описанного в примерах.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10
1 |
10 kph |
2 |
18
6 |
6 mps |
| |
|
Ход короля
Условный оператор
Король – это особая в шахматах фигура. Его ценность несравнима с ценностью остальных фигур – с его потерей партия сразу заканчивается.
Поэтому шахматный король бесценен! Но он тоже имеет право вести бой. Король может закрыть путь трём пешкам. А в паре с пешкой он может доставить неприятности самым сильным фигурам. Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку.
Поможем Вилли запрограммировать ход шахматного короля.
Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом.
Входные данные: Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
Выходные данные: Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
4
5
5 |
YES |
| |
|
День святого Франциска Ксавьера
Условный оператор
Сегодня в индийском городке Старый Гоа отмечают День святого Франциска Ксавьера. Святой Франциск Ксавьер – миссионер, член ордена иезуитов, считается величайшим католическим миссионером Нового времени.
Мощи святого Франциска Ксавьера – духовного покровителя индийских христиан – покоятся в Старом Гоа в известном католическом храме – Базилике Бом Иисус. Со дня постройки храма в 1605 году раз в десять лет мощи святого выставляются для всеобщего обозрения.
Индийский крестьянин Вирмарам – человек очень набожный, он не упускал случая коснуться святых мощей. Зная годы его жизни, определите, сколько раз он мог коснуться святых мощей (считается, что в год своего рождения он не мог этого сделать, а в год смерти – мог).
Входные данные: Вводятся два натуральных числа – год рождения и год смерти. Числа разделены пробелом. Оба числа не превосходят 2000.
Выходные данные: Программа должна определить, сколько раз крестьянин мог коснуться святых мощей, и вывести ответ - одно число.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1610 1640 |
3 |
2 |
1615 1645 |
3 |
| |
|
Точка на координатной плоскости - 2
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные:
Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные:
Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0. 1. |
YES |
2 |
0. -1. |
NO |
| |
|
Точка на координатной плоскости - 11
Условный оператор
Даны координаты точки (x, y). Выведите на экран слово YES, если точка попадает в заштрихованную область, в противном случае - выведите NO. Точка, расположенная на границе с заштрихованной областью, считается не попавшей в нее.
Входные данные: На вход программе подаются два вещественных числа - координаты точки (x, y)
Выходные данные: Выведите ответ на задачу
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0.0 -0.5 |
NO |
2 |
1.0 1.5 |
YES |
| |
|
Точка на координатной плоскости - 10
Условный оператор
Даны координаты точки (x, y). Выведите на экран слово YES, если точка попадает в заштрихованную область, в противном случае - выведите NO. Точка, расположенная на границе с заштрихованной областью, считается не попавшей в нее.
Входные данные: На вход программе подаются два вещественных числа - координаты точки (x, y)
Выходные данные: Выведите ответ на задачу
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0.0 0.0 |
NO |
2 |
1.0 1.5 |
YES |
| |
|
Точка на координатной плоскости - 9
Условный оператор
Даны координаты точки (x, y). Выведите на экран слово YES, если точка попадает в заштрихованную область, в противном случае - выведите NO. Точка, расположенная на границе с заштрихованной областью, считается не попавшей в нее.
Входные данные: На вход программе подаются два вещественных числа - координаты точки (x, y)
Выходные данные: Выведите ответ на задачу
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0.0 1.0 |
NO |
2 |
1.0 0.5 |
YES |
| |
|
Точка на координатной плоскости - 8
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата)
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
-0..5 -0.5 |
YES |
2 |
-1. 1.5 |
NO |
| |
|
Точка на координатной плоскости - 7
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0.5 0.5 |
YES |
2 |
-0.5 -0.5 |
NO |
| |
|
Точка на координатной плоскости - 6
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0. 0. |
NO |
| |
|
Точка на координатной плоскости - 5
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
-0.5 0. |
NO |
2 |
0. 0.5 |
YES |
| |
|
Точка на координатной плоскости - 4
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
-0.5 0.5 |
YES |
2 |
0.5 -0.5 |
NO |
| |
|
Точка на координатной плоскости - 3
Условный оператор
Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).
Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0. 1. |
NO |
2 |
0. -1. |
YES |
| |
|
Пончики
Условный оператор
Любителям пончиков посвящается!
Пончики — это изделия из теста, обжаренные в масле. Готовят пончики с начинкой или без нее. В сковороду с маслом одновременно можно положить p пончиков. Каждый пончик нужно обжарить с двух сторон по m минут непрерывно.
Напишите программу, которая определит, через какое наименьшее количество минут будет готово n пончиков.
Входные данные
Программа получает на вход три натуральных числа: p , m и n , по одному в строке.
Выходные данные
Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
5
1 |
10 |
2 |
2
3
7 |
21 |
| |
|
Проездной
Условный оператор
В некотором городе Че билеты на проезд в общественном транспорте (назовем такие билеты одним словом - проездной) можно купить по разным тарифам:
- проездной на одну поездку стоит 15 рублей,
- проездной на 10 поездок стоит 125 рублей,
- проездной на 60 поездок стоит 440 рублей.
Вы планируете совершить n поездок.
Определите, сколько проездных каждого вида необходимо купить, чтобы потратить как можно меньше денег, а общее число оплаченных поездок было не меньше n .
Входные данные
Программа получает на вход одно число n .
Выходные данные
Программа должна вывести три целых числа, равных необходимому количеству билетов на 1, на 10, на 60 поездок.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
36 |
0 0 1 |
2 |
64 |
4 0 1 |
| |
|
Линейное уравнение
Условный оператор
Даны числа a и b . Решите в целых числах уравнение \(ax+b=0\). Выведите все решения этого уравнения, если их число конечно, выведите слово NO , если решений нет, выведите слово INF , если решений бесконечно много.
Входные данные
Вводятся два числа, по одному в строке.
Выходные данные
Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
-7 |
7 |
2 |
6
-2 |
NO |
| |
|
Область точки
Условный оператор
Даны координаты точки (x , y ). Выведите на экран слово YES , если точка попадает в заштрихованную область, в противном случае - выведите NO . Точка, расположенная на границе с заштрихованной областью, считается не попавшей в нее.
Входные данные
На вход программе подаются два вещественных числа - координаты точки x , y .
Выходные данные
Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1.0 1.0 |
NO |
2 |
1.9 1.8 |
YES |
| |
|
Ход коня
Условный оператор
Конь - самая загадочная фигура в шахматной игре. Основное отличительное свойство — смена цвета поля при каждом ходе.
Требуется определить, может ли конь, стоящий на клетке с указанными координатами (номер строки и номер столбца), побить фигуру, стоящую на другой указанной клетке.
Входные данные
Вводятся четыре числа: координаты коня и координаты другой фигуры. Координаты - целые числа в интервале от 1 до 8 .
Выходные данные
Требуется вывести слово YES , если конь может побить фигуру за 1 ход, в противном случае вывести слово NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
1
2
3 |
YES |
2 |
3
2
8
3 |
NO |
| |
|
Программируем ферзя
Условный оператор
Никто еще не проводил статистики о том, сколько программистов умеет хорошо играть в шахматы (хотя бы на уровне первого разряда). Но мы однозначно можем сказать, что любой программист хоть раз пытался написать программу, так или иначе связанную с шахматами. Давайте попробуете и вы.
Требуется определить, может ли ферзь, стоящий на клетке с указанными координатами (номер строки и номер столбца), побить фигуру, стоящую на другой указанной клетке.
Входные данные
Вводятся четыре числа: координаты ферзя и координаты другой фигуры. Координаты - целые числа в интервале от 1 до 8 .
Выходные данные
Требуется вывести слово YES , если ферзь может побить фигуру за 1 ход, в противном случае вывести слово NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
1
8
1 |
YES |
2 |
3
2
8
3 |
NO |
| |
|
Проверка решений
Условный оператор
Наталья Владимировна попросила написать программу, которая бы по заданному шестизначному числу и введенной цифре, выводила на экран 1 , если введенная цифра является максимальной цифрой в заданном шестизначном числе. В противном случае, программа должна вывести любое другое целое число.
Все задачи Натальи Владимировны проверяются специальным контестером (тестирующей системой), на заранее подготовленных примерах и ответах.
Юному программисту кажется, что он написал программу верно, но контестер не принимает его решение. Он думает, что это происходит от того, что выводит не то любое другое число, которое записано в правильных ответах.
Помогите юному программисту и напишите программу, которая по ответу, записанному в тестирующей системе, и по ответу программиста определяет, верно ли решена задача.
Входные данные
Программа получает на вход два числа: ответ, записанный в тестирующей системе и ответ юного программиста.
Выходные данные
Программа должна вывести YES , если юный программист дал верный ответ и NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
11
-1 |
YES |
2 |
3
1 |
NO |
| |
|
Бесконечная таблица
Условный оператор
Натуральные числа записаны в (бесконечную) таблицу, как показано на рисунке.
Требуется по заданному числу вывести всех его соседей (числа, записанные в клетках сверху, справа, слева и снизу, если таковые имеются).
Входные данные: Вводится одно натуральное число, не превосходящее 109.
Выходные данные: Программа должна вывести все числа, записанные в соседних клетках с данным, в порядке возрастания. Числа должны разделяться пробелом.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 |
3 |
2 |
7 |
3 6 8 13 |
| |
|
Стрелы Ивана
Условный оператор
Иван-дурак (Иванушка-дурачок) — один из популярнейших героев русских, а также белорусских и украинских волшебных сказок. Иван-дурак на самом деле не глупый, а всего лишь последний ребенок в семье. Поскольку он третий сын, ему не положена доля в наследстве. Любил Иван в свободное время пострелять из лука. Запуская очередной раз стрелы, Иван решил посмотреть, какую фигуру они образуют, если соединить точки падения стрел. Хоть Иван и не глуп, но в вашей помощи все-таки нуждается.
Известны координаты трех точек на плоскости, куда упали стрелы Ивана. Определите взаимное расположение стрел.
Входные данные: На вход программе подаются 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 |
| |
|
Часы
Разбор случаев
Условный оператор
Задачи на моделирование
Наручные часы на электронных чернилах могут показывать текущее время в нескольких разных формах. Одна из форм - это имитация механических часов со стрелками. Циферблат часов разделен на 12 больших часовых делений, а каждое из них - на 5 малых делений. Угол между малыми делениями на циферблате равен 6. Для экономии энергии перерисовка изображения происходит один раз в минуту, когда необходимо переместить минутную стрелку. Часовая стрелка также движется дискретно, перемещаясь через каждые 12 минут на одно малое деление. Таким образом в 12:35 часовая стрелка будет указывать на 2-е малое деление справа от 12 часов, а минутная будет указывать на 7 часов. Угол между стрелками в этот момент равен 162º. В 12:36 часовая стрелка переместится на 3-е малое деление после 12 часов, а минутная — на следующее малое деление после 7 часов. Угол между стрелками часов при этом не изменится.
Напишите программу, которая вычисляет величину "внутреннего" (меньшего) угла между часовой и минутной стрелкой в заданный момент времени.
Первая строка ввода содержит два целых числа, разделенных одним пробелом — время на часах, часы H и минуты M (\(1 <= H <= 12, 0 <= M <= 59\)).
Вывести одно целое число в диапазоне от 0 до 180 — величину угла между стрелками в градусах.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12 35 |
162 |
| |
|
Метро
Условный оператор
Витя работает недалеко от одной из станций кольцевой линии Московского метро, а живет рядом с другой станцией той же линии. Требуется выяснить, мимо какого наименьшего количества промежуточных станций необходимо проехать Вите по кольцу, чтобы добраться с работы домой.
Входные данные
Станции пронумерованы подряд натуральными числами 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 |
| |
|
День святого Франциска Ксавьера
Условный оператор
Сегодня в индийском городке Старый Гоа отмечают День святого Франциска Ксавьера. Святой Франциск Ксавьер – миссионер, член ордена иезуитов, считается величайшим католическим миссионером Нового времени.
Мощи святого Франциска Ксавьера – духовного покровителя индийских христиан – покоятся в Старом Гоа в известном католическом храме – Базилике Бом Иисус. Со дня постройки храма в 1605 году раз в десять лет мощи святого выставляются для всеобщего обозрения.
Индийский крестьянин Вирмарам – человек очень набожный, он не упускал случая коснуться святых мощей. Зная годы его жизни, определите, сколько раз он мог коснуться святых мощей (считается, что в год своего рождения он не мог этого сделать, а в год смерти – мог).
Входные данные
Вводятся два натуральных числа – год рождения и год смерти. Числа разделены пробелом. Оба числа не превосходят 2000.
Выходные данные
Программа должна определить, сколько раз крестьянин мог коснуться святых мощей, и вывести ответ - одно число.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1610 1640 |
3 |
2 |
1615 1645 |
3 |
| |
|
Уравнение
Целые числа
Условный оператор
Решите в целых числах уравнение:
\( { \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 |
| |
|
Бесконечная таблица
Целые числа
Условный оператор
Натуральные числа записаны в (бесконечную) таблицу, как показано на рисунке.
Требуется по заданному числу вывести всех его соседей (числа, записанные в клетках сверху, справа, слева и снизу, если таковые имеются)
Входные данные
Вводится одно натуральное число, не превосходящее 109.
Выходные данные
Программа должна вывести все числа, записанные в соседних клетках с данным, в порядке возрастания. Числа должны разделяться пробелом.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 |
3 |
2 |
7 |
3 6 8 13 |
| |
|
Карточки
Условный оператор
Вася выложил в ряд слева направо 100 карточек, на которых написаны числа 1, 2, 3, …, 100 соответственно (числами вниз). После этого он поменял местами карточки, на которых написаны числа i и j. Петя открывает карточки по очереди слева направо. Какое минимальное количество карточек ему придется открыть, чтобы точно выяснить, какие карточки поменял местами Вася?
Входные данные
Вводятся два числа i (1 ≤ i ≤ 100) и j (1 ≤ j ≤ 100). Числа записаны через пробел.
Выходные данные
Требуется вывести одно число – минимальное количество карточек, которое достаточно открыть Пете.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10 20 |
10 |
| |
|
Квартиры
Условный оператор
В доме несколько подъездов. В каждом подъезде одинаковое количество квартир. Квартиры нумеруются подряд, начиная с единицы. Может ли в некотором подъезде первая квартира иметь номер x, а последняя – номер y?
Входные данные
Вводятся два натуральных числа x и y (x ≤ y), не превышающие 10 000.
Выходные данные
Выведите слово YES (заглавными латинскими буквами), если такое возможно, и NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
11 15 |
YES |
2 |
2 10 |
NO |
| |
|
Число
Цикл for
Условный оператор
Строки
Вводится натуральное число. Требуется разделить запятыми тройки его цифр (считая справа).
Входные данные
Вводится одно натуральное число, не превышающее 10100.
Выходные данные
Вывести то же число, разделяя тройки цифр запятыми.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1000 |
1,000 |
2 |
12345678 |
12,345,678 |
3 |
999 |
999 |
| |
|
Конь
Условный оператор
На доске размером 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 |
| |
|
Будильники
Условный оператор
Одномерные массивы
Дата и время
Перебор
Будильник в сотовом телефоне можно настроить так, чтобы он звонил каждый день в одно и то же время, либо в указанное время в определенный день недели. Независимо можно настроить несколько будильников.
По информации о будильниках и текущему времени и дню недели определите, когда прозвонит очередной будильник.
Входные данные
В первой строке вводятся три числа, задающие текущее время: день недели (от 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 |
Во втором примере третий будильник будет звенеть в начальный момент времени. |
| |
|
Турнир
Условный оператор
В однокруговом турнире без ничьих участвовало N команд (каждая сыграла с каждой по одному матчу). Победителями считаются все команды, которые выиграли не меньше партий, чем остальные. Какое наибольшее количество победителей может быть в таком турнире?
Входные данные
Вводится одно натуральное число, не превосходящее 1000 – количество команд.
Выходные данные
Выведите одно число – наибольшее возможное количество победителей в таком турнире.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2 |
1 |
| |
|
Сумма цифр
Условный оператор
Подсчитайте количество натуральных чисел на отрезке от a до b, сумма цифр которых четна.
Входные данные
Вводится два натуральных числа a и b, не превосходящие миллиарда (a ≤ b).
Выходные данные
Выведите одно число – количество чисел, больших либо равных a и меньших либо равных b, имеющих четную сумму цифр.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 5 |
2 |
2 |
10 10 |
0 |
| |
|
Теннис
Условный оператор
Вася, Петя и Коля играли в теннис навылет (проигравший пропускал следующую партию, уступая свое место третьему). Вася утверждает, что сыграл x партий, Петя – что сыграл y партий, Коля – z партий.
Определите, могло ли такое быть.
Входные данные
Вводятся три целых неотрицательных числа x, y, z, не превосходящих 1 000.
Выходные данные
Выведите YES (заглавными буквами), если такое могло быть, и NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 1 2 |
YES |
2 |
1 1 1 |
NO |
| |
|
Трудная задача из ЕГЭ
Условный оператор
Петя долго готовился к сдаче ЕГЭ по информатике. Он научился решать все задачи, и лишь задачу А12 ему научиться решать не удалось. Но он надеется тайно пронести на экзамен ноутбук, и просит вас написать программу, которая ему поможет. Вот как выглядит эта трудная задача в демоверсии варианта ЕГЭ 2010 года:
"А12. Витя пригласил своего друга Сергея в гости, но не сказал ему код от цифрового замка своего подъезда, а послал следующее 5М5-сообщение:
"В последовательности цифр 3182 все цифры больше 5 разделить на 2 (при необходимости отбросив остаток), а затем удалить из полученной последовательности все четные цифр".
Какой код получил Сергей, выполнив указанные в сообщении действия?"
Входные данные
Вводятся 4 цифры в одной строке без пробелов – последовательность, содержащаяся в SMS-сообщении в реальном варианте ЕГЭ вместо 3182 в демоверсии.
Выходные данные
Выведите код цифрового замка без пробелов.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
0586 |
53 |
| |
|
Прыжки с трамплина
Одномерные массивы
Условный оператор
На соревнованиях по прыжкам на лыжах с трамплина техника прыжка оценивается пятью судьями. Каждый судья ставит оценку от 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 |
| |
|
Простая игра
Условный оператор
Как непросто быть школьником! Именно такие мысли чаще всего посещают Петю после уроков математики. Сегодня учительница рассказывала, что такое простые числа. Петя впервые услышал о них. Оказывается, простое число — это такое натуральное число, которое имеет ровно два различных натуральных делителя, то есть делится без остатка только на единицу и на само себя. После урока Петя и его друг Сережа придумали такую игру: один называет два числа A и B, а другой говорит, сколько нулей на конце произведения всех простых между A и B включительно. Петя заметил, что Сережа отвечает на вопрос намного быстрее, чем он сам, и очень просит вас ему помочь. Напишите для Пети программу, которая будет отвечать на вопросы Сережи.
Входные данные
На вход подается два числа A, B (1 ≤ A ≤ B ≤ 109), разделенных пробелом. Гарантируется, что между A и B есть хотя бы одно простое число.
Выходные данные
Выведите количество нулей, на которое заканчивается произведение всех простых чисел на отрезке от A до B.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 7 |
1 |
2 |
3 3 |
0 |
| |
|
Слава и электрички
Цикл for
Условный оператор
У Славы очень много друзей, и ему очень нравится с ними встречаться. Но, к сожалению, все друзья Славы живут в разных городах (каждый в своем), до которых Слава из своего Большого Города может добраться только на электричках. Каждый раз, когда Слава решает навестить кого-нибудь из своих друзей, перед ним встает нелегкий выбор — к кому же именно поехать на этот раз. Всех своих друзей Слава очень любит и не хочет никого обидеть. Поэтому он поступает следующим образом: в некоторый момент времени Слава выходит из дома и едет на вокзал. После приезда на вокзал Слава садится в ближайшую электричку, которая едет к одному из его друзей. По известному времени приезда Славы на вокзал помогите ему узнать, к какому именно другу он сегодня поедет.
Входные данные
В первой строке входных данных содержатся числа 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. |
| |
|
Метро
Одномерные массивы
Условный оператор
Ваня не очень-то любит людей, но, к сожалению, ему иногда все-таки приходится ездить на метро. В таких случаях ему помогают две вещи: наушники с любимыми «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 |
| |
|
Пробка
Одномерные массивы
Условный оператор
В один из летних дней Аркадий со своими родителями отправился в автомобильное путешествие. Он очень надеялся, что за городом им удастся избежать ненавистных пробок. Но, увы, уже через час они попали в затор. Аркадий загрустил и задумался о том, с какой скоростью они могли бы ехать, если бы не было пробки... Участок дороги, на котором они сейчас находятся, — однополосный. А это значит, что обгонять едущие впереди машины не представляется возможным. Т. е. какой бы мощной машина ни была, она все равно не сможет ехать быстрее, чем машина впереди неё. Аркадий хорошо разбирается в машинах и поэтому знает максимальные скорости тех машин, которые едут впереди. Теперь он хочет понять, с какой максимальной скоростью могла бы ехать каждая машина на данном участке.
Входные данные
В первой строчке дано число N (1 ≤ N ≤ 200) — количество машин в пробке. В следующих N строчках записано по одному целому числу в каждой, причем в i-й строчке записана скорость i-й машины. Скорость каждой из машин не превышает 300. Считается, что (i + 1)-я машина едет за i-й, а первая машина может ехать со своей максимальной скоростью.
Выходные данные
Выведите N чисел — скорости машин, с которыми они могли бы ехать на данном участке.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2
80
100 |
80 80 |
| |
|
Доминошахматы
Условный оператор
Вася очень любит различные игры: шашки, шахматы, домино, крестики-нолики и т. д. Поскольку он играет в них уже достаточно давно, он успел изучить эти игры достаточно хорошо, и они стали скучными. Поэтому он теперь изобретает новые игры на основе тех, в которые уже наигрался. Недавно он изобрел игру «Доминошахматы».
Она состоит в следующем: Вася берет у дедушки большой кусок фанеры и раскрашивает его так, что у него получается шахматная доска размера N × M клеточек. Потом он берет кости домино и пытается покрыть ими полученную доску так, чтобы все клеточки были закрыты, не было наложений и никакие доминошки не торчали за края доски (каждая доминошка покрывает две соседние клетки).
Поскольку Вася не спрашивает разрешения у дедушки прежде, чем взять доску, он иногда берет ненужные доски, а иногда и те, которые дедушка хотел использовать в строительстве новой дачи. Как раз сегодня Вася взял «нужную» доску, поэтому дедушка был вынужден вырезать из Васиной доски два квадрата по одной клеточке.
Вася сначала огорчился, что не сможет поиграть в свою игру. А потом решил попробовать замостить доску с уже вырезанными клетками, причем так, чтобы вырезанные клетки не были накрыты доминошками.
Помогите Васе понять, можно ли это сделать.
Входные данные
В первой строке входных данных записаны числа N и M — размеры доски (1 ≤ N ≤ 200, 1 ≤ M ≤ 200, N·M > 2).
Во второй строке вводятся через пробел два целых числа — координаты x1 и y1 первой вырезанной клетки (1 ≤ x1 ≤ N, 1 ≤ y1 ≤ M).
В третьей строке вводятся через пробел два целых числа — координаты x2 и y2 второй вырезанной клетки (1 ≤ x2 ≤ N, 1 ≤ y2 ≤ M).
Первая и вторая клетки не совпадают.
Выходные данные
Выведите «YES», если доску с вырезанными клеточками можно покрыть доминошками, и «NO» в противном случае. (Запас доминошек у Васи бесконечный.)
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2 2
1 1
2 2 |
NO |
2 |
2 2
1 1
1 2 |
YES |
| |
|
Асфальтоукладчик
Вещественные числа
Условный оператор
Начались каникулы, и Максим приехал в гости к бабушке и дедушке, но вовсе не в деревню, как вы, вероятно, подумали. Бабушка и дедушка Максима живут в очень культурном городе с легендарно плохой погодой — тут очень часто идет дождь.
Вот и сейчас стоило Максиму выйти из здания вокзала, как начался ливень. Зонтик, согласно всем законам подлости, лежит у него на дне чемодана, и лезть за ним совсем не хочется. Да и вот же — совсем рядом есть автобусная остановка, под которой можно укрыться от дождя. Нужно всего лишь перейти улицу, и все! «Не бывает все так просто», — пришло в голову Максиму. И действительно — не бывает.
Дело в том, что на улице, которая отделяет Максима от остановки, меняют асфальт. Старый слой асфальта уже сняли (там теперь ямы, поэтому пройти там невозможно), и теперь по улице, приближаясь к Максиму, со скоростью v2 м/мин мужественно ползет асфальтоукладчик, оставляя за собой новый, аккуратно уложенный асфальт. Правда, прежде, чем по новому асфальту можно будет ходить, он должен остывать T минут. Асфальтоукладчик только что начал работу, поэтому весь асфальт за ним был залит еще вчера и уже успел остыть.
Конечно же, Максим не хочет мокнуть, поэтому он пытается оказаться на другой стороне улицы как можно быстрее. Он бегает со скоростью v1 м/мин. Известна ему и ширина улицы — L м. Максим может ходить вдоль улицы по тротуару сколько ему хочется. Находиться на проезжей части он хочет как можно меньше, поэтому переходит улицу он только перпендикулярно.
Входные данные
Даны целые числа L, D, T, v1, v2 — ширина улицы, расстояние до асфальтоукладчика, время, которое остывает асфальт (в минутах), скорость Максима и скорость асфальтоукладчика. (1 ≤ L ≤ 100, 1 ≤ D ≤ 100, 1 ≤ T ≤ 100, 1 ≤ v1 ≤ 100, 1 ≤ v2 ≤ 100).
Выходные данные
Выведите одно число — время в минутах, которое понадобится Максиму, чтобы оказаться на другой стороне улицы.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4 9 3 2 1 |
6.0 |
2 |
1 1 1 3 1 |
0.666666666667 |
| |
|
Водопады
Одномерные массивы
Условный оператор
Недавно дядя Фёдор прочитал в журнале «Мурзилка», что самый высокий водопад в мире — это водопад Анхель, высота которого составляет 1054 метра. «Вот было бы здорово посмотреть на такой водопад!», — размечтался он.
Но Венесуэла далеко, поэтому пока дядя Фёдор решил начать с исследования речки Сметанки, которая течет рядом с Простоквашино. Она начинается в холмах и постепенно спускается вниз, к деревне. Дядя Фёдор вместе с Шариком прошли вдоль всего течения Сметанки от ее истока. Иногда по пути им встречались водопады. Как дядя Фёдор узнал из той статьи в «Мурзилке», водопадом считается участок реки с постоянным углом наклона, превышающим 45 градусов, то есть такой участок, высота которого больше его длины.
Уже после путешествия, раз за разом перерисовывая карту Сметанки на бумагу, дядя Фёдор заметил, что если нарисовать вид Сметанки сбоку (то есть чем выше нарисована точка — тем выше она над уровнем моря, а чем правее — тем дальше она от истока и ближе к Простоквашино), то получается невозрастающая ломаная, которую очень легко анализировать. Каждый отрезок этой ломаной — это как раз участок реки с постоянным углом наклона, который может оказаться водопадом!
Проведя несколько вечеров за изучением карты Сметанки, дядя Фёдор вспомнил, что кроме водопадов бывают еще и каскады водопадов. Каскадом водопадов называется один или несколько идущих подряд водопадов. Высота каскада — это разница между высотами самой верхней и самой нижней точек, принадлежащих этому каскаду.
Теперь дяде Фёдору стало интересно, а какова высота самого высокого каскада водопадов на Сметанке? Помогите ему: по описанию реки, сделанному Шариком и дядей Фёдором, найдите это число.
Входные данные
В первой строке вводится число n (2<=n<=105 ) — количество вершин ломаной, описывающей речку Сметанку. В следующих n строках перечислены координаты этих точек, в i-й строчке записаны числа xi и yi — расстояние от точки до истока по горизонтали и высота точки над уровнем моря (0xi<=109, yi<=109 ). Точки перечислены начиная от истока реки, то есть начиная с точки, x-координата которой равна нулю, а y-координата — максимальная среди всех точек. Гарантируется, что река течет сверху вниз и слева направо, то есть каждая следующая точка находится не выше и не левее предыдущей.
Выходные данные
Выведите одно целое число: высоту самого высокого каскада водопадов на этой реке. Если на реке на самом деле нет водопадов, выведите 0.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
0 15
1 10
5 5 |
10 |
| |
|
Перенумеровать
Цикл for
Условный оператор
В деревне Простоквашино часть домов перестала пользоваться услугами бумажной почты, перейдя на электронную. Всего в деревне N домов, из которых M ещё не перешли на использование только электронной почты. Почтальон Печкин решил перенумеровать дома, которые все ещё пользуются бумажной почтой так, чтобы они имели номера с 1 по M. При этом Печкину не важно, что дома с соседними номерами не будут стоять рядом друг с другом. Поскольку почтальону не очень хочется запоминать новые номера для всех домов, в которые он ещё носит письма и телеграммы, он хочет перенумеровать только некоторые из них. Какое минимальное количество домов потребуется перенумеровать, чтобы они шли по порядку
Входные данные
В первой строке записаны два числа N и M (1<=M<=N<=1000) – количество домов в Простоквашино и количество тех домов, которые ещё пользуются услугами почтальона Печкина, соответственно. Во второй строке записано M чисел ai , (1<=ai<=N) возрастающем порядке – номера домов, которые ещё используют бумажную почту.
Выходные данные
В ответ выведите одно число – минимальное количество домов, которое потребуется перенумеровать.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснения |
1 |
8 5
1 2 4 5 8 |
1 |
В приведенном примере дому, который имел номер 8, нужно дать номер 3. Тогда 5 домов, которые ещё используют бумажную почту, как раз будут иметь номера от 1 до 5. |
| |
|
Подсчет ворон
Условный оператор
Цикл for
На чердаке дома в Простоквашино Шарик нашел странный прибор. Дядя Фёдор быстро понял, что это — ручной механический счетчик, и, как написано в его любимой энциклопедии, это «ручной механизм, для подсчитывания повторяющихся событий нажатием кнопки на счётчике, чтобы не использовать ручку и бумагу для их записи или чтобы не держать эти числа в уме».
Внутри такой счетчик устроен следующим образом: в нем есть три диска с надписанными на ребре цифрами от 0 до 9. Диски надеты на ось, к которой подсоединена кнопка. Изначально на каждом из трёх дисков записана цифра 0. При нажатии на кнопку один или несколько дисков проворачиваются так, чтобы записанное в данный момент на счетчике число увеличилось на 1. Каждый диск при нажатии на кнопку проворачивается только на одно число вперед. Если за одно нажатие проворачивается несколько дисков, сначала проворачиваются диски, соответствующие более младшим разрядам числа, а потом — более старшим.
Например, пусть cейчас на счетчике написано число 18. Это значит, что на первом диске установлена цифра 0, на втором — 1, на третьем — 8. Следующее число после 18 — 19, поэтому при нажатии кнопки третий диск провернется на одно число, чтобы на нем оказалось установлена цифра 9, а остальные останутся неподвижными. Теперь на счетчике будет написано 19. После еще одного нажатия на счетчике должно будет оказаться число 20. Это значит, что третий диск должен про- вернуться на одно число, чтобы на нем оказалось установлена цифра 0, и что второй диск тоже должен провернуться, чтобы на нем оказалась установлена 2.
Чтобы испробовать свою находку в деле, Шарик не придумал ничего лучше, как посчитать ворон, пролетающих мимо окна. Поскольку счетчик, который нашёл Шарик, очень старый, при повороте каждого из дисков раздается щелчок. Дядя Фёдор, сидевший рядом, посчитал все щелчки, которые услышал. Теперь он хочет понять, сколько ворон пролетело мимо их окна, т.е. какое число записано на счетчике.
Входные данные
Вводится одно целое число n: сколько щелчков насчитал дядя Фёдор (0<=n<=1107).
Выходные данные
Выведите одной целое число: количество пролетевших мимо окна ворон. Если же дядя Фёдор ошибся, и такое количество щелчков не могло прозвучать, выведите −1.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
9 |
9 |
2 |
10 |
-1 |
| |
|
Папа, я физик!
Условный оператор
Теория относительности — штука сложная. Это Максим, семилетний сын одного известного физика, знает уже давно. Из отцовских объяснений Максим понял, что свет — это самая быстрая штуковина в мире. А если кажется, что что-то все-таки быстрее, чем свет, то на самом деле оно движется со скоростью, равной скорости света — 299 792 458 м/с.
Так что по пути на море, убегая по поезду Москва-Адлер от чем-то очень недовольного папы, Максим совершенно не думал над тем, за что именно он сейчас получит и можно ли это было как-то предотвратить. Волновало его одно: с какой скоростью его папа бежит относительно Земли, если учесть теорию относительности? Поезд едет из Москвы в Адлер со скоростью v м/c, а папа бежит за Максимом в сторону головы поезда со скоростью u м/с относительно поезда.
Входные данные
Даны два числа v и u — скорость поезда относительно Земли и скорость папы Максима относительно поезда соответственно. Обе скорости неотрицательны и не превышают скорости света (299 792 458 м/с).
Выходные данные
Выведите одно число — скорость папы Максима относительно Земли, найденную с учетом представлений Максима о теории относительности.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
120 35 |
155 |
2 |
149896229 149896230 |
299792458 |
| |
|
Детский сад
Условный оператор
Циклы
В младшей группе детского сада «Телепузики» всего n детей. Каждый из них, как и любой четырехлетка, легко может начать плакать просто из-за того, что его одногруппники тоже плачут. Ну и что, что он не знает, в чем дело? Товарищи же не могут ошибаться.
Воспитательница работает в детском саду уже много лет, и отлично разбирается в детском настроении. Ей достаточно посмотреть на ребенка, чтобы понять, насколько он сегодня плаксив: заплачет ли он сегодня сам из-за того, что компот невкусный, разрыдается ли из-за того, что Катя и Ваня уже плачут, а он еще нет, или же будет сосредоточенно играть c кубиками, не обращая внимание на слезы и сопли товарищей.
Зная сегодняшнюю плаксивость каждого из детей, определите, будет ли сегодня рыдать вся группа одновременно, или обойдется без массовой истерики.
Входные данные
В первой строке дано целое число n (1n1000) — количество детей в группе. В следующей строке через пробел перечислены n чисел, причем i-е по счету число qi (0qin−1 ) обозначает плаксивость i-го ребенка. Число qi обозначает количество детей, которые должны заплакать, чтобы этот ребенок тоже заплакал. Если qi = 0, значит, этот ребенок точно сегодня заплачет просто так, вне зависимости от своих товарищей. Считается, что ребенок не может начать плакать, если вокруг него не плачет нужное количество детей. Если ребенок начал плакать, то он уже не успокоится до вечера.
Выходные данные
Выведите «YES», если вся группа будет плакать одновременно, или «NO» иначе.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
1 0 1 2 |
YES |
2 |
3
1 1 1 |
NO |
| |
|
Куртки
Условный оператор
Цикл for
Благотоворительные организации каждый год собирают деньги на теплую одежду бедным. У главного героя этой задачи есть целых две куртки, но это не мешает ему страдать. Одна из его курток — зимняя, а вторая — демисезонная (в ней приятно ходить осенью или весной). Куртки подобраны идеально: в зимней куртке комфортно при температуре в x градусов или ниже, а в демисезонной – при температуре выше x градусов. В общем, жить бы ему и радоваться. Но откуда бы тогда появиться задаче?
Проблема нашего героя в том, что он, надевая сегодня не ту куртку, которую носил вчера, по- стоянно забывает переложить проездной, ключи и прочие полезные вещи в карман новой куртки. Немного подумав, он решил, что не совсем подходящая к сегодняшней температуре куртка — это не так плохо, как забытые вещи. Поэтому, если сегодня незначительно теплее, чем граничная температура, он все равно пойдет в зимней куртке, аналогично для демисезонной. Чуть более формально это звучит так: он меняет куртку с зимней на демисезонную, только если сегодня за окном есть хотя бы x + d градусов, а с демисезонной на зимнюю — если за окном x − d градусов или холоднее. Иногда ему, конечно, не очень комфортно на улице, но зато все вещи точно с собой.
По архиву прогноза погоды за последние n дней определите, сколько дней главному герою этой задачи было некомфортно. Считается, что в первый день он вышел в той куртке, в которой в этот день комфортно.
Входные данные
В первой строчке даны два вещественных числа x и d — граница температуры между куртками и отклонение температуры, которое герой задачи считает незначительным (−89≤x≤55, 1≤d≤6 ).
Во второй строчке дано целое число n, 1≤n≤105 — количество дней в архиве прогноза погоды.
В третьей строчке перечислены n вещественных чисел ti — температура в i-й день (−89≤ti≤55 ).
Выходные данные
Выведите одно число: количество дней, в которые герою задачи было некомфортно в той куртке, в которой он вышел в этот день
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5 1
7
6 7 4 4 2 3 7 |
0 |
2 |
0 2
4
-1 1 -1 1 |
2 |
| |
|
Алёна, помни возраст Вити!
Целые числа
Условный оператор
Витя безумно любит статистику. Ещё бы — у них со старшим братом день рождения приходится на один и тот же день года! Теперь каждый год в свой день рождения он записывает, сколько лет ему и его брату, и пытается найти в этих записях что-нибудь интересное.
Сегодня у Вити день рождения, и он показал свои записи Алёне. Витя знает, что она тоже любит исследовать всякие наборы чисел и находить в них закономерности. Алёна тут же заметила интересный момент: когда в один из прошлых дней рождения Вите было n лет, его брату было m лет, а сегодня Витя младше своего брата ровно в k раз!
Вернувшись вечером домой, Алёна заинтересовалась вопросом: а достаточно ли этих данных, чтобы вычислить, сколько лет исполнилось Вите сегодня? Алёна быстро справилась, а сможете ли вы решить эту сложную задачу и выяснить по числам n , m и k , сколько лет Вите?
Входные данные
Ввод состоит из трех строк, которые содержат по одному натуральному числу: n , m и k — возраст Вити и его брата в былые времена, а также во сколько раз Витя сегодня младше своего брата ( 1 ≤ n < m ≤ 10 000 , 2 ≤ k ≤ 10 000 ).
Выходные данные
Если описанная в условии ситуация могла произойти, выведите единственное число t — сколько лет сегодня исполнилось Вите.
Если Витя и Алёна ошиблись, и описанной ситуации быть не могло, выведите число - 1 .
№ |
Входные данные |
Выходные данные |
1 |
4
15
2 |
11 |
2 |
4
15
3 |
-1 |
3 |
4
8
2 |
-1 |
| |
|
Режем торт
Условный оператор
Сегодня у Кроша день рождения! По этому поводу он испек огромный торт. Торт представляет собой прямоугольник n × m , разделенный на nm единичных квадратиков горизонтальными и вертикальными линиями из крема.
На праздник в гости к Крошу пришли Совунья и Нюша. По законам гостеприимства, Крош должен поделиться с своим тортом. Для этого он хочет по очереди отрезать от торта два куска и раздать их гостьям.
Отрезать кусок от торта Крош может так: разделить торт на два прямоугольника одним разрезом, проходящим по одной из горизонтальных или вертикальных линий (таким образом, после разреза оба прямоугольника имеют целые длины сторон). Далее, Крош выбирает один из этих прямоугольников и отдает очередной гостье.
После того, как Крош два раза отрежет кусок от своего торта, оставшуюся часть он съедает сам. Сегодня торт получился очень вкусный, и поэтому Крош хочет, чтобы ему достался кусок как можно большей площади. Помогите ему определить, какую максимальную площадь торта он сможет оставить себе.
Входные данные
Первая строка входных данных содержит единственное целое число n ( 1 ≤ n ≤ 4·104 ) — длину торта. Вторая строка входных данных содержит единственное целое число m ( 1 ≤ m ≤ 4·104 ) — ширину торта.
Гарантируется, что от торта Кроша можно отрезать два куска, оставив при этом прямоугольник ненулевой площади.
Выходные данные
Выведите одно число — максимальную площадь куска торта, который сможет оставить себе Крош.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
3 |
6 |
Примечание
Иллюстрация к тесту из примера: Крош делает разрезы вдоль пунктирных линий, отдавая гостьям куски с серыми границами. В конце ему достается кусок размера 2 × 3 .
| |
|
Автобусы
Целые числа
Условный оператор
Для заезда в оздоровительный лагерь организаторы решили заказать автобусы. Известно, что в лагерь собираются поехать N детей и M взрослых. Каждый автобус вмещает K человек. В каждом автобусе, в котором поедут дети, должно быть не менее двух взрослых.
Определите, удастся ли отправить в лагерь всех детей и взрослых, и если да, то какое минимальное количество автобусов требуется для этого заказать.
Входные данные
На вход программы поступают 3 натуральных числа, записанных через пробел - N, M и K, каждое из них не превосходит 10 000.
Выходные данные
Выведите количество автобусов, которые нужно заказать. Если же отправить всех в лагерь невозможно, выведите 0 (ноль).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10 4 7 |
2 |
2 |
10 4 5 |
0 |
| |
|
Лавочки
Одномерные массивы
Условный оператор
Лавочки в парке устроены следующим образом. Несколько одинаковых кубических гранитных блоков ставятся в ряд, а на них кладется гранитная плита (см. рисунок). Архитектор-модернист решил, что будет интереснее, если у всех лавочек расположение гранитных блоков-ножек будет разным (и не обязательно симметричным). При этом они располагаются так, чтобы плита не падала: для этого достаточно, чтобы и слева, и справа от центра плиты был хотя бы один гранитный блок или его часть (в частности, если центр плиты приходится на середину какого-нибудь блока, то и слева, и справа от центра плиты находится часть блока, и плита не падает).
Грабители обнаружили, что можно по одному вытаскивать гранитные блоки, находящиеся с краю (как слева, так и справа). Они хотят вытащить из-под лавочки как можно больше блоков так, чтобы она при этом не упала (передвигать оставшиеся блоки нельзя). Определите, какие блоки они должны оставить.
Входные данные
В первой строке входных данных содержатся два числа: L - длина лавочки и K - количество гранитных блоков-ножек. Оба числа натуральные и не превышают 10 000.
Во второй строке следуют K различных целых неотрицательных чисел, задающих положение каждой ножки. Положение ножки определяется расстоянием от левого края плиты до левого края ножки (ножка - это куб размером 1×1×1). Ножки перечислены слева направо (то есть начиная с ножки с меньшим расстоянием до левого края).
Выходные данные
Требуется перечислить ножки, которые грабителям нужно оставить. Для каждой ножки нужно выдать ее положение, как оно задано во входных данных. Ножки следует перечислять слева направо, в том порядке, в котором они встречаются во входных данных.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5 2
0 2 |
2 |
2 |
13 4
1 4 8 11 |
4 8 |
3 |
14 6
1 6 8 11 12 13 |
6 8 |
| |
|
Выборы
Символы
Условный оператор
Целые числа
На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и минусов.
Бюллетень считается действительным, если пометка есть ровно в одной клетке. Недействительные бюллетени в подсчете результатов выборов не участвуют.
Партия проходит в Государственную Думу, только если она набирает не менее 7% от общего числа действительных бюллетеней.
Требуется вывести номера (в порядке их перечисления в бюллетене) всех партий, которые проходят в Государственную Думу.
Входные данные
В первой строке входных данных содержатся два числа, разделенные пробелом: N - количество партий и M - количество бюллетеней. Оба числа натуральные, N ≤ 200, M ≤ 100 000.
В следующих M строках записана информация, полученная из бюллетеней. Каждая строка - последовательность из N символов + или - (без пробелов).
Гарантируется, что есть хотя бы один действительный бюллетень.
Выходные данные
Выведите через пробел номера партий, прошедших в Думу, в порядке возрастания. Если ни одна из партий не проходит в Думу, выводить ничего не нужно.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 4
+--
+--
-+-
+-+ |
1 2 |
2 |
1 5
+
-
-
-
- |
1 |
| |
|
Оплата интернета
Целые числа
Условный оператор
Витя подключен к интернет по следующему тарифному плану. Ежемесячная абонентская плата составляет A рублей, и в эту абонентскую плату включено B мегабайт трафика. Неизрасходованные мегабайты в конце месяца «сгорают». Если трафик превышает B мегабайт, то каждый мегабайт трафика сверх предоплаченных стоит C рублей.
Известно, что за прошлый месяц Витя израсходовал D мегабайт трафика. Определите, во сколько обошелся ему доступ в интернет в прошлом месяце (считая в том числе и абонентскую плату)?
Формат входных данных
Вводятся четыре натуральных числа A, B, C, D. Все числа не превышают 100.
Формат выходных данных
Выведите одно число — сумму (в рублях), которую Витя должен заплатить за интернет.
| |
|
Калькулятор
Условный оператор
В новой программе OpenCalculator появилась новая возможность – можно настроить, какие кнопки отображаются, а какие – нет. Если кнопка не отображается на экране, то ввести соответствующую цифру с клавиатуры или копированием из другой программы нельзя. Петя настроил калькулятор так, что он отображает только кнопки с цифрами x, y, z. Напишите программу, определяющую, сможет ли Петя ввести число N, а если нет, то какое минимальное количество кнопок надо дополнительно отобразить на экране для его ввода.
Входные данные
Сначала вводятся три различных числа из диапазона от 0 до 9: x, y и z (числа разделяются пробелами). Далее вводится целое неотрицательное число N, которое Петя хочет ввести в калькулятор. Число N не превышает 10000.
Выходные данные
Выведите, какое минимальное количество кнопок должно быть добавлено для того, чтобы можно было ввести число N (если число может быть введено с помощью уже имеющихся кнопок, выведите 0)
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
1 2 3
1123 |
0 |
Число может быть введено имеющимися кнопками. |
2 |
1 2 3
1001 |
1 |
Нужно добавить кнопку 0. |
3 |
5 7 3
123 |
2 |
Нужно добавить кнопки 1 и 2. |
| |
|
Расстановка ноутбуков
Задачи на моделирование
Условный оператор
В школе решили на один прямоугольный стол поставить два прямоугольных ноутбука. Ноутбуки нужно поставить так, чтобы их стороны были параллельны сторонам стола. Определите, какие размеры должен иметь стол, чтобы оба ноутбука на него поместились, и площадь стола была минимальна.
Входные данные
Вводится четыре натуральных числа, первые два задают размеры одного ноутбука, а следующие два — размеры второго. Числа не превышают 1000.
Выходные данные
Выведите два числа — размеры стола. Если возможно несколько ответов, выведите любой из них (но только один).
Примечание
В примерах указаны всевозможные ответы на поставленную задачу. Ваша программа должна вывести один из них.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10 2 2 10 |
20 2
2 20
4 10
10 4 |
2 |
5 7 3 2 |
9 5
5 9 |
| |
|
Сравнения
Условный оператор
Про три числа (обозначенных a, b, c) известны все результаты сравнения их друг с другом. Требуется расположить эти числа в порядке возрастания.
Входные данные
Вводятся три строки. В первой записан результат сравнения между собой чисел a и b в следующем формате. Первый символ — всегда a, третий символ — b (соответствующие маленькие латинские буквы), а между ними записан один из символов >, < или =. Во второй строке в таком же формате записан результат сравнения a и с (первый символ всегда a, третий — c), а в третьей строке — результат сравнения b и c (первый символ всегда b, третий — c). Гарантируется, что входные данные не противоречивы.
Выходные данные
Выведите символы a, b, c в порядке величины соответствующих им чисел — каждое следующее число должно быть больше либо равно предыдущему. Если два числа равны между собой, соответствующие переменные могут быть выведены в любом порядке. Символы должны быть выведены в одной строке без пробелов и других разделителей.
Примечание
Во втором примере ответ cba также является верным. Обратите внимание, если вариантов ответа несколько — не нужно выводить их все, ваша программа должна вывести ровно один вариант ответа.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
a>b
a>c
b>c |
cba |
2 |
a=b
a>c
b>c |
cab
cba |
| |
|
Проверьте правильность ситуации
Условный оператор
Напишите программу, которая по изображению поля для игры в «Крестики-нолики» определит, могла ли такая ситуация возникнуть в результате игры с соблюдением всех правил.
Напомним, что игра в «Крестики-нолики» ведется на поле 3×3. Два игрока ходят по очереди. Первый ставит крестик, а второй – нолик. Ставить крестик и нолик разрешается в любую еще не занятую клетку поля. Когда один из игроков поставит три своих знака в одной горизонтали, вертикали или диагонали, или когда все клетки поля окажутся заняты, игра заканчивается.
Входные данные
Вводится три строки по три числа в каждой, описывающих игровое поле. Число 0 обозначает пустую клетку, 1 – крестик, 2 – нолик. Числа в строке разделяются пробелами.
Выходные данные
Требуется вывести слово YES, если указанная ситуация могла возникнуть в ходе игры, и NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 1 1
1 1 1
1 1 1 |
NO |
2 |
2 1 1
1 1 2
2 2 1 |
YES |
3 |
1 1 1
2 0 2
0 0 0 |
YES |
4 |
0 0 0
0 1 0
0 0 0 |
YES |
5 |
1 1 1
2 2 2
0 0 0 |
NO |
| |
|
Чунга-Чанга
Условный оператор
Целые числа
Наше счастье постоянно — жуй кокосы, ешь бананы, Жуй кокосы, ешь бананы, Чунга-чанга!
м/ф «Катерок»
После открытия острова «Чунга-Чанга» туда постепенно начала пробираться цивилизация и даже стала развиваться рыночная экономика. Появилась и новая валюта — чижик. Теперь для того, чтобы счастливо жевать кокосы, их нужно сначала купить под пальмой.
Саша и Маша проходили мимо пальмы, под которой продаются кокосы по цене z чижиков за штуку. У Саши есть x чижиков, а у Маши y. Каждая из девочек собирается купить максимальное число кокосов, на которое у неё хватит денег. Обсудив планы о покупке кокосов, девочки заметили, что если одна из них передаст какое-то количество чижиков другой, то суммарное количество кокосов, которое они купят, может от этого увеличиться (а может и уменьшиться). Кокосы не продаются по частям, то есть каждая из девочек может купить только целое неотрицательное число кокосов. Чижики тоже не могут быть разделены на части, то есть одна из девочек может передать другой только целое неотрицательное число чижиков.
Например, предположим, что у Саши было 5 чижиков, у Маши 4, а один кокос стоит 3 чижика. Тогда, если девочки не будут обмениваться чижиками, то они купят 1+1=2 кокоса. Если же Маша передаст Саше один чижик, то у Саши их будет 6, а у Маши 3, и девочки купят 2+1=3 кокоса.
Жизнь на острове уже не так легка и проста, поэтому Саша и Маша хотят распределить деньги так, чтобы суммарно купить как можно больше кокосов. При этом, никто не любит одалживать чижики, поэтому среди всех способов, приводящих к максимальному количеству купленных кокосов, найдите тот, который минимизирует число передаваемых между Сашей и Машей (неважно в какую сторону) чижиков.
Входные данные
Первая строка содержит три целых числа x, y и z (0 ≤ x, y ≤ 1018 , 1 ≤ z ≤ 1018) — количество чижиков у Саши, количество чижиков у Маши и цена одного кокоса.
Выходные данные
Выведите два целых числа — максимальное суммарное количество кокосов, которое можно купить, и минимальное количество чижиков, которым для этого придётся поделиться одной из девочек.
Примечание
Первый пример разобран в условии задачи. Во втором примере оптимально не обмениваться чижиками, в таком случае будет куплено 3+4=7 кокосов.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5 4 3 |
3 1 |
2 |
6 8 2 |
7 0 |
| |
|
Наборы пирожных
Условный оператор
На складе кондитерской фабрики хранятся пирожные двух видов - круассаны и эклеры. Круассанов A штук, а эклеров - B штук. Есть неограниченный запас подарочных коробок, в каждую коробку можно положить только три пирожных. При этом требуется, чтобы в коробке были пирожные обоих видов, то есть в одну коробку можно положить два круассана и один эклер или один круассан и два эклера.
Определите, можно ли упаковать все имеющиеся пирожные в коробки и выведите подходящий способ размещения пирожных по коробкам.
Входные данные
Программа получает на вход два целых числа A и B , записанных в отдельных строках. 1 <= A <= 109, 1 <= B <= 109.
Выходные данные
Если можно разложить все пирожные по коробкам в соответствии с условием задачи, программа должна вывести два целых числа. Первое число равно количеству коробок, в которых лежит два круассана и один эклер. Второе число равно количеству коробок, в которых лежит один круассан и два эклера.
Если разложить все пирожные по коробкам нужным способом нельзя, программа должна вывести одно число -1 .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
5 |
1 2 |
2 |
5
3 |
-1 |
| |
|
Ироха любит Хайку
Условный оператор
Ироха любит Хайку. Хайку - это жанр традиционной японской лирической поэзии вака, известный с XIV века. Хайку состоит из трех фраз с 5 , 7 и 5 слогами, именно в такой последовательности (схема 5-7-5 ). Для создания Хайку Ироха придумала три разные фразы. В этих фразах a , b и с слогов соответственно. Определите, может ли Ироха построить Хайку, используя каждую из фраз один раз в определенном порядке.
Входные данные
На вход подаются три натуральных числа a , b и с (\(1 <= a, b, c <= 10\)) .
Выходные данные
Если возможно построить Хайку, используя каждую из фраз по одному разу, выведите YES (с учетом регистра). В противном случае выведите NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5 5 7 |
YES |
2 |
5 7 7 |
NO |
| |
|
Плата за отель
Условный оператор
Некоторый отель установил следующую плату за проживание:
X рублей за ночь, за первые K ночей;
Y рублей за ночь, за (K+1 )-ю и последующие ночи.
Громозека решил остаться в этом отеле на N последовательных ночей. Посчитайте общую стоимость проживания Громозеки в данном отеле.
Входные данные
На вход подаются 4 положительных целых числа: N , K , X , Y (\(1<=N,K<=10000\); \(1<=Y<X<=10000\)). По одному числу в строке.
Выходные данные
Выведите на экран общую стоимость размещения в данном отеле.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
5
3
10000
9000 |
48000 |
Стоимость размещения:
10000 руб. за 1-ю ночь;
10000 руб. за 2-ю ночь;
10000 руб. за 3-ю ночь;
9000 руб. за 4-ю ночь;;
9000 руб. за 5-ю ночь;
Итого: 48000 рублей.
|
2 |
2
3
10000
9000 |
20000 |
|
| |
|
Громозека и краска
Условный оператор
Громозека недавно купил три баллончика с краской. Цвет того, который он купил два дня назад, - a , цвет того, который он купил вчера, - b , и цвет того, что он купил сегодня, - c . Цвет каждого баллончика с краской условно представлен целым числом от 1 до 100 включительно. Поскольку Громозека забывчивый, он мог купить несколько баллончиков с краской одного цвета. Подсчитайте количество разных цветов этих баллончиков с краской и скажите ему.
Входные данные
В одной строке записаны три целых числа a , b и c (\(1 <= a,b,c<=100\)).
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 1 4 |
3 |
2 |
3 3 33 |
2 |
| |
|
Битва за конфеты
Условный оператор
Есть три упаковки конфет, каждая из которых содержит конфеты в количестве a , b и c штук соответственно. Двое воспитанников детского сада Сластена дерутся из-за этих конфет. Воспитательница Анна Николаевна пытается распределить пачки между двумя воспитанниками таким образом, чтобы каждый получил одинаковое количество конфет. Определите, возможно ли это.
Обратите внимание, что Анна Николаевна не может вынимать конфеты из упаковки, и все содержимое каждой упаковки должно быть отдано одному из учеников.
Входные данные
Во входной строке содержится три числа a , b и c (\(1<=a,b,c<=100\)).
Выходные данные
Если есть возможность распределить упаковки так, чтобы каждый воспитанник получил одинаковое количество конфет, выведите Yes . В противном случае выведите No .
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
10 30 20 |
Yes |
Раздайте пачку с 30 конфетами одному, а две пачки по 10 и 20 конфет - другому. Каждый получает по 30 конфет. |
2 |
30 30 100 |
No |
В этом случае у воспитанника, который получает упаковку со 100 конфетами, всегда больше конфет, чем у другого.
Обратите внимание, что каждую упаковку нужно отдать одному из них. |
3 |
56 25 31 |
Yes |
|
| |
|
Задачи для Громозеки
Условный оператор
Громозека решает задачи по шахматам из сборника для начинающих (ABC ), если его текущий рейтинг меньше 1200, и задачи из сборника для клубных игроков (ARC ) в противном случае. Вам дается текущий рейтинг Громозеки, x . Выведите ABC , если Громозека будет решать задачи для начинающих, и выведите ARC в противном случае.
Входные данные
На вход подается целое положительно число x .
Выходные данные
Выведите на экран ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1000 |
ABC |
2 |
2000 |
ARC |
| |
|
Распродажа
Условный оператор
Жадный алгоритм
Магазины в рекламных целях часто устраивают распродажи. Так, например,одна из крупных сетей магазинов канцелярских товаров объявила два рекламных предложения: "купи N одинаковых товаров и получи еще один товар бесплатно"и "купи K товаров по цене K−1 товара".
Для проведения олимпиады организаторам требуется распечатать условия для участников, на что уходит очень много бумаги. Каждая пачка стоит B рублей. Какое максимальное количество пачек бумаги можно приобрести на A рублей, правильно используя рекламные предложения?
Входные данные
Во входном файле записаны целые числа N, K, A и B (1 ≤ N ≤ 100, 2 ≤ K ≤ 100, 1 ≤ A ≤ 109, 1 ≤ B ≤ 109), разделенные пробелами.
Выходные данные
Выведите одно целое число - максимальное количество пачек бумаги, которое смогут купить организаторы олимпиады.
Примечание
В первом примере, дважды используя второе рекламное предложение, можно купить 8 пачек бумаги, заплатив за 6.
Во втором примере рекламными предложениями воспользоваться нельзя.
В третьем примере можно по одному разу воспользоваться каждым из двух рекламных предложений и на оставшийся рубль купить еще одну пачку бумаги.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4 4 13 2 |
8 |
2 |
3 4 8 3 |
2 |
3 |
3 4 7 1 |
9 |
| |
|
SilverTests Beginner раунды
Условный оператор
Все конкурсы SilverTests Beginner Coder (STBCoder) помечаются как STBC001, STBC002, ... с первого раунда до 999-го раунда. После раунда STBC999 возникает проблема: как должны быть помечены следующие раунды? В конце концов, было решено для раундов с 1000-го по 1999-й отмечать как STBD000, STBD001, ..., STBD999. Раунды с 2000 по 2999 отмеаются как STBE000, STBE001, ..., STBE999 и т.д., Каждый раз меняется последняя буква (STBC, STBD, STBE, ..., STBL). Таким образом помечаны раунды с 1 по 9999.
Вам дано целое число N от 1 до 9999 (включительно). Выведите первые четыре символа ярлыка N -го тура конкурса SilverTests Begginer Coder.
Входные данные
На вход целое число N (\(1<=N<=9999\)).
Выходные данные
Выведите первые три символа ярлыка N -го тура конкурса SilverTests Beginner Coder.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
999 |
STBC |
2 |
1000 |
STBD |
3 |
6345 |
STBI |
| |
|
С Днем Рождения!
Условный оператор
Целые числа
Целые числа
Пупсень и Вупсень скоро отмечают свое 16-летие. Баба Капа испекла им круглый торт, и разрезала на 16 равных веерообразных частей. Пупсень и Вупсень как раз собирались съесть A и B этих кусочков соответственно, когда они обнаружили прикрепленную к торту записку, в которой говорилось, что «одна и та же гусеница не может съесть два соседних куска торта». Могут ли они оба выполнить инструкции в записке и взять желаемое количество кусочков торта?
Входные данные
Во входной строке два числа через пробел A и B .
Выходные данные
Выведите на экран слово Hooray! , если Пупсень и Вупсень могут выполнить инструкции в примечании и взять желаемое количество кусков торта, в противном случае выведите грустный смайлик :( .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
5 4 |
Hooray! |
2 |
8 8 |
Hooray! |
| |
|
Арифметические печеньки. Очень легкая задача
Условный оператор
Строки
Символы
В уме Громозеки всегда есть целое число. Первоначально в уме Громозеки целое число равно 0 . Теперь Громозека собирается съесть четыре печеньки, на каждой из которых написан символи либо + либо - . Когда он ест печеньку с символом + , целое число в его уме увеличивается на 1 ; когда он ест печеньку с символом - , целое число в его уме уменьшается на 1 . Печеньки, которые Громозека собирается съесть, даются вам в виде строки S, i -й символ в S - это i -я печенька, которую он ест. Найдите целое число в уме Громозеки после того, как он съест все печеньки.
Входные данные
На вход подается строка из 4-х символов, каждый из которых равен + или - .
Выходные данные
Выведите целое число в уме Громозеки после того, как он съест все печеньки.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
+-++
|
2 |
2 |
-+--
|
-2 |
3 |
----
|
-4 |
| |
|
Числовые печеньки
Целые числа
Цикл while
Условный оператор
Громозека любит числовые печеньки. Среди всех числовых печенек Громозека ест только такие, на которых сумма цифр записанного числа в десятичной системе счисления является делителем самого числа. Вам дается число, записанное на печеньке. Определите будет ли ее есть Громозека или нет.
Входные данные
На вход подается целое число N (1<=N<=109).
Выходные данные
Выведите ответ Yes , если Громозека будет есть такую печеньку, No - если не будет.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12 |
Yes |
2 |
101 |
No |
| |
|
Красная шапочка
Условный оператор
Красная Шапочка часто навещает свою бабушку. Но она очень боится, что рано или поздно ее бабушку опять навестит волк. Поэтому она решила договориться с Лесничим об охране бабушки. Лесничий согласился охранять бабушку за 10 пирожков.
Узнав об этом, волк сказал Красной Шапочке, что ей совершенно незачем тратить пирожки на Лесничего. За половину тех пирожков, которые Красная Шапочка несет бабушке, Волк пообещал не трогать ее.
Сегодня (26 ноября) в России отмечается день матери. Мама испекла несколько пирожков, и попросила Красную Шапочку отнести их бабушке. Требуется определить, сколько пирожков Красная Шапочка сможет донести до бабушки.
Входные данные
Вводится одно четное число - количество пирожков, которые испекла мама.
Выходные данные
Программа должна вывести одно число - количество пирожков, которые Красная Шапочка сможет донести до бабушки.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
12 |
6 |
2 |
100 |
90 |
| |
|
Под контролем ладьи
Условный оператор
Требуется определить, контролирует ли ладья, стоящая на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой указанной клетке.
Входные данные
Вводятся четыре числа: координаты ладьи (два числа) и координаты другой фигуры (два числа), каждое число вводится в отдельной строке. Координаты - целые числа в интервале от 1 до 8.
Выходные данные
Требуется вывести слово YES, если ладья сможет побить фигуру за 1 ход и NO - в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
1
2
2 |
NO |
2 |
1
1
2
1 |
YES |
| |
|
Слон
Условный оператор
Требуется определить, бьет ли слон, стоящий на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой указанной клетке.
Входные данные
Вводятся четыре числа: координаты слона и координаты другой фигуры. Координаты - целые числа в интервале от 1 до 8.
Выходные данные
Требуется вывести слово YES, если слон способен побить фигуру за 1 ход, в противном случае вывести слово NO
| |
|
Ферзь
Условный оператор
Требуется определить, бьет ли ферзь, стоящий на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой указанной клетке.
Входные данные
Вводятся четыре числа: координаты ферзя и координаты другой фигуры. Координаты - целые числа в интервале от 1 до 8.
Выходные данные
Требуется вывести слово YES, если ферзь может побить фигуру за 1 ход, в противном случае вывести слово NO
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
1
8
1 |
YES |
2 |
3
2
8
3 |
NO |
| |
|
Фишки
Целые числа
Условный оператор
В каждую крайнюю клетку квадратной доски поставили по фишке. Могло ли оказаться, что выставлено ровно k фишек? (Например, если доска 2х2, то выставлено 4 фишки, а если 6х6 - то 20).
Входные данные
Вводится одно натуральное число k, не превосходящее 30000
Выходные данные
Программа должна вывести слово YES, если существует такой размер доски, на который будет выставлено ровно (не больше, и не меньше) k фишек, в противном случае - вывести слово NO.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
20 |
YES |
2 |
13 |
NO |
| |
|
Котлеты
Условный оператор
Целые числа
На сковородку одновременно можно положить k котлет. Каждую котлету нужно с каждой стороны обжаривать m минут непрерывно. За какое наименьшее время удастся поджарить с обеих сторон n котлет?
Входные данные
Вводятся 3 числа: k, m и n. Все числа не превосходят 32000.
Выходные данные
Вывести время, за которое все котлеты будут обжарены.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
5
1 |
10 |
| |
|
Координатные четверти
Условный оператор
Даны координаты двух точек на плоскости, требуется определить, лежат ли они в одной координатной четверти или нет (все координаты отличны от нуля).
Входные данные
Вводятся 4 числа: координаты первой точки (x1, y1) и координаты второй точки (x2, y2).
Выходные данные
Программа должна вывести слово YES, если точки находятся в одной координатной четверти, в противном случае вывести слово NO.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
3
5
1 |
YES |
| |
|
Делим шоколадку
Условный оператор
Требуется определить, можно ли от шоколадки размером n × m долек отломить k долек, если разрешается сделать один разлом по прямой между дольками (то есть разломить шоколадку на два прямоугольника).
Входные данные
Вводятся 3 числа: n, m и k; k не равно n × m. Гарантируется, что количество долек в шоколадке не превосходит 30000.
Выходные данные
Программа должна вывести слово YES, если возможно отломить указанное число долек, в противном случае вывести слово NO.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
2
4 |
YES |
2 |
3
2
1 |
NO |
| |
|
Король
Условный оператор
Поле шахматной доски определяется парой чисел (a, b), каждое от 1 до 8, первое число задает номер столбца, второе – номер строки. Заданы две клетки. Определите, может ли шахматный король попасть с первой клетки на вторую за один ход.
Входные данные
Даны 4 целых числа от 1 до 8 каждое, первые два задают начальную клетку, вторые два задают конечную клетку. Начальная и конечная клетки не совпадают. Числа записаны в отдельных строках.
Выходные данные
Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую, или NO в противном случае.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
4
5
5 |
YES |
| |
|
Билеты на метро
Условный оператор
Билет на одну поездку в метро стоит 15 рублей, билет на 10 поездок стоит 125 рублей, билет на 60 поездок стоит 440 рублей. Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов – минимальна.
Входные данные
Дано одно число n - количество поездок.
Выходные данные
Выведите три целых числа, равные необходимому количеству билетов на 1, на 10, на 60 поездок.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
129 |
0 1 2 |
| |
|
Билеты на метро - 2
Условный оператор
Билет на одну поездку в метро стоит 15 рублей, билет на 5 поездок стоит 70 рублей, билет на 10 поездок стоит 125 рублей, билет на 20 поездок стоит 230 рублей, билет на 60 поездок стоит 440 рублей. Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов – минимальна.
Входные данные
Дано одно число n - количество поездок.
Выходные данные
Выведите пять целых чисел, равные необходимому количеству билетов на 1, на 5, на 10, на 20, на 60 поездок. Если для какого-то данного n существует несколько способов приобретения билетов одинаковой стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1 |
1 0 0 0 0 |
| |
|
Минимальная скидка
Целые числа
Условный оператор
Мистер Дункан, директор магазина "Игрушечный сундук Дункана", ежегодно под Рождество жертвует детским фондам определенную сумму денег. Сумма, которая уходит на благотворительность всегда равна минимальному числу, которое делится на 2 и на число игрушек, проданных за год. По заданному числу проданных игрушек за год (N ), определите сумму, которую пожертвует мистер Дункан.
Входные данные
На вход подается положительное целое число N (1<=N<=109).
Выходные данные
Выведите одно число - сумму, которую пожертвует мистер Дункан.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 |
6 |
2 |
10 |
10 |
3 |
999999999 |
1999999998 |
| |
|
Делители числа
Цикл for
Простые числа и разложение на множители
Условный оператор
Выведите все натуральные делители числа x в порядке возрастания (включая 1 и само число).
Входные данные
Вводится натуральное число x
Выходные данные
Выведите все делители числа x
Примеры
№ |
Входные данные |
Выходные данные |
1 |
32 |
1 2 4 8 16 32 |
| |
|
До до до Нового года!
Условный оператор
В каком-то другом мире сегодня D -е декабря. Напишите программу, которая выводит на экран "Happy New Year! ", если D = 31 , "Before Happy New Year! ", если D = 30 , "Before before Happy New Year! ", если D = 29 и "Before before before Happy New Year! ", если D = 28 .
Входные данные
На вход подается целое число D (28 <= D <= 31).
Выходные данные
Выведите на экран ответ соответствующую строку.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
31 |
Happy New Year! |
2 |
28 |
Before before before Happy New Year! |
| |
|
С Новым Годом!
Условный оператор
В каком-то другом мире сегодня 31 декабря. У деда Коковани есть A мандаринок, а у Дарёны - B мандаринок. Дед Кокованя выполняет следующее действие K раз:
- Если у деда Коковани есть одна или несколько мандаринок, он отдает Дарёне одну из его мандаринок и она её съедает.
- В противном случае, если у Дарёны есть одна или несколько мандаринок, она отдает одну деду и он ее съедает.
- Если у них обоих нет ни одной мандаринки, то никто ничего не съедает.
Сколько мандаринок останется у деда Коковани и Дарёны в конце игры?
Входные данные
Программа получает на вход три целых числа в одной строке через пробел: A , B и K (0 <= A, B, K <= 1012).
Выходные данные
Выведите на экран 2 числа - количество мандаринок, которое останется у деда Коковани и Дарёны в конце игры.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
2 3 3 |
0 2 |
Дед Кокованя сделает следующее:
1) У него две мандаринки, поэтому он отдает одну Дарене и она съедает ее.
2) Теперь у него осталось одна мандаринка, и он опять отдаст ее Дарёна, которая ее съест.
3) Теперь у него не осталось мандаринок, но у Дарёны их три, поэтому дед Кокованя съедает одну из них.
Таким образом, в итоге у деда Коковани будет 0 мандаринок, а у Дарёны - 2. |
2 |
500000000000 500000000000 1000000000000 |
0 0 |
Следите за переполнением! |
| |
|
Экономическая грамотность
Условный оператор
Задачи на моделирование
Многие банки при оплате покупок их банковскими картами предлагают систему возврата части потраченных средств, называемую cashback .
Мама Алёны имеет три подобные карты с разными условиями возврата части потраченной суммы. На карту банка RR возвращается 5 рублей из каждых полных 100 рублей стоимости одной покупки. Например, 5 рублей возвращается и за покупку стоимостью 100 рублей, и 199 рублей. Банк BB возвращает 2 рубля с каждых 50 рублей покупки, и за покупку стоимостью 199 рублей он вернет уже 6 рублей. А банк ММ возвращает 3% с полной стоимости любой покупки (заметим, что при цене в целом числе рублей, 3% всегда будут составлять целое число копеек), поэтому за покупку в 199 рублей вернется 5 руб. 97 коп.
Алёна любит ходить вместе с мамой за покупками. Мама предложила Алёне определять, какую покупку какой картой оплачивать, чтобы сумма возврата была максимально возможной. Считайте, что оплата любой покупки возможна любой картой. Если какие-то две или все три карты дают лучшую сумму возврата с точностью до копеек, то Алёна выбирает ту из карт, которая ей больше нравится по оформлению. Больше всего Алёна любит карту банка MM, затем идёт карта банка BB, а меньше всего Алёне нравится карта банка RR.
Входные данные
Вводится одно целое число S ( 1 <= S <= 10 000 ) — стоимость покупки в рублях.
Выходные данные
Выведите название банка RR , BB или MM в зависимости от того, картой какого банка выгоднее оплатить эту покупку. А при равенстве суммы возврата - название банка, определённого в условии задачи.
Примечание
В первом примере только банк MM вернёт часть суммы покупки. Второй пример разобран в условии задачи.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10 |
MM |
2 |
199 |
BB |
3 |
101 |
RR |
| |
|
Социальное дистанцирование I
Разбор случаев
Условный оператор
Простые задачи на перебор
Ужасная болезнь поражает коров. Фермер Джон хочет их защитить.
Амбар ФД - это узкое длинное здание, содержащее N стойл в ряд (2≤N≤105). Некоторые из этих стойл уже заняты коровами, некоторые - свободны. Прочитав о необходимости социального дистанцирования, ФД хочет максимизировать D, где D, это расстояние между двумя ближайшими занятыми стойлами. Например, если стойла 3 и 8 ближайшие, которые заняты, тогда D=5.
Две новых коровы пополнили стадо ФД и он должен решить, в какое не занятое стойло разместить каждую из них. Определите, ка к он должен разместить этих коров, чтобы в результате D, стало максимальным из возможных. ФД не может передвигать никакую из имеющихся коров, он может только назначить стойла новым коровам.
Входные данные
Первая строка ввода содержит N. Следующая строка содержит строку длиной N из 0 и 1, описывающая последовательность стойл в амбаре. 0 означает пустое стойло, 1 означает занятое стойло. В строке имеется как минимум два нуля, что достаточно для размещения двух коров.
Выходные данные
Выведите наибольше значение D (наименьшее расстояние между двумя занятыми стойлами), которое ФД может получить добавлением двух новых коров оптимальным образом.
Примеры
№ |
Входные данные |
Выходные данные |
|
1 |
14
10001001000010 |
2 |
В этом примере ФД может добавить коров так: 10x010010x0010 где x показывает новых коров. В этом случае D=2. Невозможно разметить коров так, чтобы получить D больше. |
| |
|
Голодная пешка
Строки
Условный оператор
Вывод формулы
Громозека уважает игры на шахматной доске. На обычной доске размером 8х8 у Громозеки стоит голодная пешка. Голодная пешка каждым ходом съедает какую-либо фигуру соперника (т.е. она может пойти по диагонали вперед на 1 клетку вправо или влево, назад пойти она не может). Громозека, не глядя на доску, научился определять, может ли голодная пешка попасть с одной клетки доски на другую. Превращаться в ферзя голодной пешке нельзя.
Напишите программу, с помощью которой вы могли бы также легко проверить Громозеку.
Входные данные
Программа получает на вход две клетки шахматной доски в шахматной нотации. Сначала клетка, где стоит голодная пешка, а затем, через пробел, клетка, куда голодная пешка должна попасть.
Выходные данные
Выведите слово YES (заглавными буквами), если голодная пешка может попасть из первой клетки во вторую, и NO в противном случае.
Доска имеет размер 8x8, вертикали нумеруются маленькими латинскими буквами от a до h, горизонтали - числами от 1 до 8. Исходная и конечная клетки не совпадают.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
a1 b2 |
YES |
2 |
b2 a1 |
NO |
3 |
a1 h7 |
NO |
| |
|
Соседние квадраты
Условный оператор
Существует сетка с H горизонтальными строками и W вертикальными столбцами. Пусть (i , j ) обозначает квадрат в i -й строке сверху и в j -м столбце слева.
Найдите количество квадратов, которые имеют общую сторону с квадратом (R , C ).
Квадрат (a , b ) и квадрта (c , d ), имеют одну общую сторону тогда и только тогда, когда |a-c|+|b-d|=1 (где |x| обозначает абсолютное значение x ).
Входные данные
Програма получает на вход две строки. Первая строка содержит два целых числа H и W (1 <= H, W <= 10). Вторая строка содержит два целых числа R и C (1 <= H, W <= 10).
Выходные данные
Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 4
2 2 |
4 |
2 |
3 4
1 3 |
3 |
Изображение сетки, для описанных выше примеров
| |
|
Какое вам мороженное?
Условный оператор
Инопланетная исследовательская экспедиция во главе с Диком Соломоном пытается вести жизнь обычной человеческой семьи. Совсем недавно они узнали, что сухое молоко состоит из молочного жира и обезжиренного сухого молока. Самый любимый продукт, изготовляемый из сухого молока - продукт типа мороженного. Испробовав достаточно большое количество образцов, члены экспедиции выделили 4 основные категории:
- продукт типа мороженого с содержанием не менее 15 процентов сухого молока и не менее 8 процентов молочного жира называется мороженым (1);
- продукт типа мороженого с содержанием не менее 10 процентов сухого молока и не менее 3 процентов молочного жира, который не является мороженым, называется мороженым со льдом (2);
- тип мороженого продукта с содержанием сухого молока не менее 3 процентов, который не является мороженым или молоком со льдом, называется лакто-льдом (3);
- продукт типа мороженого, который не является мороженым, ледяным молоком или лакто-льдом, называется ароматизированным льдом (4).
Дик Соломон, возвращаясь с работы купил мороженое, которое содержит А % сухого обезжиренного молока и B % молочного жира. И он опять забыл к какой категории относится это мороженое. Помогите ему определить категорию мороженого?
Выведите свой ответ в виде целого числа.
Входные данные
Единственная строка ввода содержит два целых числа A и B , записанных через пробел (0 <= A , B <= 100, A+B <= 100).
Выходные данные
Выведите экран целое число:
1 - если это мороженое;
2 - если это ледяное молоко;
3 - если это лакто-лед;
4 - это ароматизированный лед.
Используйте вложенные условия (конструкцию elif для языка Python и else if для других языков).
Примеры
№ |
Входные данные |
Выходные данные |
Примечание |
1 |
10 8 |
1 |
Этот продукт содержит 10 процентов сухого обезжиренного молока и 8 процентов молочного жира, в общей сложности 18 процентов сухого молока.
Поскольку в нем содержится не менее 15 процентов сухого молока и не менее 8 процента молочного жира, это мороженое; правильный ответ 1 . |
2 |
1 2 |
3 |
|
| |
|
Когда же суббота
Строки
Условный оператор
Однажды, устав от похода в школу, Томми захотел узнать, сколько дней осталось до субботы. Мы знаем, что этот день был будним, и название дня недели было S (по-английски).Сколько дней оставалось до первой субботы после этого дня (считая саму субботу, но не считая день S )?
Входные данные
На вход подается строка S (S может быть Monday , Tuesday , Wednesday , Thursday или Friday ).
Выходные данные
Выведите на экран ответ на задачу
Используйте вложенные условия (конструкцию elif для языка Python и else if для других языков).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Wednesday
|
3
|
| |
|
Принадлежит ли точка области
Элементарная геометрия
Условный оператор
Принадлежит ли точка области
Даны два действительных числа x и y. Проверьте, принадлежит ли точка с координатами (x,y) данной закрашенной области:
Если точка принадлежит области (область включает границы), выведите слово YES , иначе выведите слово NO .
На рисунке сетка проведена с шагом 1.
Входные данные.
Два действительных числа.
Выходные данные.
Ответ на задачу.
Примеры
входные данные |
выходные данные |
-2
2 |
YES |
-2
1 |
NO |
| |
|
Принадлежит ли точка кругу
Элементарная геометрия
Условный оператор
Принадлежит ли точка кругу
Даны пять действительных чисел: x, y, xc, yc, r.
Проверьте, принадлежит ли точка (x,y) кругу с центром (xc,yc) и радиусом r.
Если точка принадлежит кругу, выведите слово YES , иначе выведите слово NO .
Входные данные.
Два действительных числа.
Выходные данные.
Ответ на задачу.
Примеры
входные данные |
выходные данные |
0.5
0.5
0
0
1
|
YES |
0.5
0.5
1
1
0.1
|
NO |
| |
|
Принадлежит ли точка квадрату - 2
Элементарная геометрия
Условный оператор
Принадлежит ли точка квадрату - 2
Даны два действительных числа x и y. Проверьте, принадлежит ли точка с координатами (x,y) заштрихованному квадрату (включая его границу).
Если точка принадлежит квадрату, выведите слово YES , иначе выведите слово NO . На рисунке сетка проведена с шагом 1.
Входные данные.
Два действительных числа.
Выходные данные.
Ответ на задачу.
Примеры
входные данные |
выходные данные |
0
0 |
YES |
1
1 |
NO |
| |
|
Принадлежит ли точка квадрату-1
Элементарная геометрия
Условный оператор
Принадлежит ли точка квадрату - 1
Даны два действительных числа x и y. Проверьте, принадлежит ли точка с координатами (x,y) заштрихованному квадрату (включая его границу).
Если точка принадлежит квадрату, выведите слово YES , иначе выведите слово NO . На рисунке сетка проведена с шагом 1.
Входные данные.
Два действительных числа.
Выходные данные.
Ответ на задачу.
Примеры
входные данные |
выходные данные |
0
0 |
YES |
3
-7 |
NO |
| |
|
Прямоугольник Томми
Условный оператор
Томми очень любит прямоугольные фигуры. На уроке геометрии Томми выдали четыре полоски бумаги для составления его любимой фигуры. К сожалению, одну полоску Томми потерял и у него остались три полоски бумаги длиной l1 , l2 , l3 . Теперь Томми задумался, а сможет ли он составить из этих полосок прямоугольник, если одну любую полоску разрежет один раз таким образом, чтобы длина каждой части была ненулевой, а сумма длин полученных частей равнялась бы изначальной длине полоски.
Томми считает, что квадрат является прямоугольником.
Помогите Томми определить, получится ли у него сделать прямоугольник.
Входные данные
Программа получает на вход три целых числа l1 , l2 , l3 (1 <= l1 , l2 , l3 <= 108).
Выходные данные
Если у Томми получится построить прямоугольник, то выведите на экран слово YES. Если прямоугольник построить не получится - слово NO.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2 5 2
|
NO
|
2 |
2 4 2
|
YES
|
| |
|
Красная шапочка
Условный оператор
Красная Шапочка часто навещает свою бабушку. Но она очень боится, что рано или поздно ее бабушку опять навестит волк. Поэтому она решила договориться с Лесничим об охране бабушки. Лесничий согласился охранять бабушку за 10 пирожков.
Узнав об этом, волк сказал Красной Шапочке, что ей совершенно незачем тратить пирожки на Лесничего. За половину тех пирожков, которые Красная Шапочка несет бабушке, Волк пообещал не трогать ее.
Сегодня (26 ноября) в России отмечается день матери. Мама испекла несколько пирожков, и попросила Красную Шапочку отнести их бабушке. Требуется определить, какое максимально возможное число пирожков Красная Шапочка сможет донести до бабушки.
Входные данные
Вводится одно четное число - количество пирожков, которые испекла мама.
Выходные данные
Программа должна вывести одно число - количество пирожков, которые Красная Шапочка сможет донести до бабушки.
| |
|
Когда же Новый год?
Строки
Условный оператор
Томми очень любит Новый год! 31 декабря в этом году приходится на субботу. Томми захотел узнать, сколько дней осталось до 31 декабря. Мы знаем, что сегодня будний день S (по-английски) и 31 декабря уже на этой неделе в субботу. Помогите Томми определить сколько дней оставалось до 31 декабря после сегодня (считая день 31 декабря, но не считая сегодняшний день S )?
Входные данные
На вход подается строка S (S может быть Monday (понедельник), Tuesday (вторник), Wednesday (среда), Thursday (четверг) или Friday (пятница)).
Выходные данные
Выведите на экран ответ на задачу
Используйте вложенные условия (конструкцию elif для языка Python и else if для других языков).
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Wednesday
|
3
|
| |
|
Добраться до игрушек
Условный оператор
Простые задачи на перебор
Дед Мороз решил проверить фабрику игрушек, все ли подарки для детей готовы. Чтобы дойти до места хранения игрушек, ему необходимо пройти по узкому секретному коридору. В коридоре на каждом метре пути указано число метров от двери. У двери, возле которой стоит Дед Мороз, записано число 0. По коридору можно двигаться как влево, так и вправо. При движении влево числа отрицательные, при движении вправо - положительные.
Так как место засекречено, завод постоянно меняет вход в хранилище игрушек.
Дед Мороз знает, что вход в фабрику сегодня расположен у двери с числом X . Также известно, что в коридоре, рядом с числом Y находится дверь, перекрывающая проход по коридору. Чтобы ее открыть необходимо взять ключ, который располагается на стене на полке в коридоре рядом с числом Z .
Определите сможет ли Дед Мороз сам добраться до двери к игрушкам. Если сможет, определите минимальное расстояние, которое необходимо будет пройти Деду Морозу. Если не сможет, то выведите -1 .
Входные данные
Программа получает на вход строку, содержащую 3 различных ненулевых числа: X, Y, Z (-103 <= X, Y, Z <= 103).
Выходные данные
Выведите минимальное расстояние, которое необходимо пройти Деду Морозу от двери, у которой он стоит, до двери, за которой расположено место хранения игрушек. Если Дед Мороз не сможет добраться до этой двери, выведите -1 .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
10 -10 1 |
10 |
2 |
20 10 -10 |
40 |
3 |
100 1 1000 |
-1 |
| |
|
Шахматные звания
Условный оператор
Система рейтинга шахматистов ФИДЕ приближенно указывает на квалификацию игроков. Так, набрав определенный рейтинг, мужчины могут претендовать на следующие шахматные звания:
- 2000 – 2199 – кандидат в мастера (
CM )
- 2200 – 2399 – мастер ФИДЕ (
FM )
- 2400 – 2499 – международный мастер (
IM )
- 2500 и выше – международный гроссмейстер (
GM )
После очередного турнира у Шахматист достиг рейтинга равного N пунктов. Выведите звание, на которое он может претендовать или выведите NO , если набранный рейтинг не соответствует никакому званию.
Входные данные
Программа получает на вход число N (0 < N < 3000).
Выходные данные
Выведите звание, которому соответсвует набранный рейтинг (CM , FM , IM или GM ), если рейтинг не соответсвует никакому званию, то выведите NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1900 |
NO |
2 |
2450 |
IM |
| |
|
Счастливчики
Условный оператор
Разбор случаев
Вам дали сумму денег в рублях и попросили разделить эту сумму между всеми детьми. Назовем Счастливчиками тех детей, которые получат ровно по 8 рублей при дележе денег по следующим правилам:
- Все деньги должны быть распределены.
- Каждый должен получить как минимум 1 рубль.
- Никто не должен получить 4 рубля (это совсем не счастливая сумма).
Определите максимальное количество Счастливчиков, если вы разделите деньги в соответствии с вышеупомянутыми правилами. Если нет способа разделить деньги, верните -1 .
Входные данные
В первой строке записана сумма денег (money - целое число), которую вам дали. Вторая строка содержит количество детей (children - целое число), между которыми необходимо разделить данную сумму.
Ограничения
1 <= money <= 200
2 <= children <= 30
Выходные данные
Выведите максимальное количество Счастливчиков.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
20
3 |
1 |
2 |
16
2 |
2 |
| |
|
Судьба Королевства
Символы
Строки
Условный оператор
В далеком царстве жил могущественный маг по имени Эльдрик, который был помешан на шахматах. В башне Эльдрика была волшебная шахматная доска, о которой говорили, что она предсказывает будущее королевства. Но был казус. Шахматные фигуры двигались только по белым клеткам, а черные клетки хранили секреты прошлого.
Однажды молодой оруженосец по имени Леон решил узнать все секреты прошлого и пошел к башне. Маг Эльдриг дал оруженосцу пергамент, на котором были написаны координаты одной клетки шахматной доски. Эльдриг сказал, что если он сумеет не глядя на доску определить какой цвет у данной клетки шахматной доски, то ему откроются все секреты прошлого!
Леон не был так помешан на шахматах, но все же смог определить цвет клетки правильно! Сможете ли это сделать и вы?
Шахматная доска выглядит таким образом
Формат входных данных
Программа получает на вход одну строку, в которой записана координата шахматной клетки.
Ограничения
длина строки == 2
'a' <= первый символ строки <= 'h'
'1' <= второй символ строки <= '8'
Формат выходных данных
Выведите слово white , если клетка белого цвета и black - если черного.
| |
|
Праздник Времени
Условный оператор
Максимус, посещая небольшой городок Лимбридж попал на праздник Времени, в котором жители отмечали важные моменты своей жизни и жизни города. На празднике Времени, жители рассказывают друг другу истории своего детства, при этом, иногда называют свои года рождения. Максимум запомнил имена четырех друзей и их года рождения. Оказалось, что все друзья разного возраста. Теперь он хочет узнать, кто же из друзей старше, а также на сколько он старше самого младшего.
Тут Максимуса позвали в гости его новые знакомые и он просит вас написать для него программу, которая бы давала ответ на его вопрос.
Входные данные
Программа получает на вход четыре строки. В каждой строке записано сначала имя одного из друзей, затем, через один пробел, год его рождения.
Ограничения:
имя состоит только из английских букв, различного регистра
1900 <= год рождения <= 2023
Выходные данные
Выведите в первой строке имя самого старшего из друзей. Во второй строке выведите одно число, на сколько лет он старше самого младщего из друзей.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
Alex 2010
Vika 2009
Max 2014
Liza 2012 |
Vika
5 |
| |
|
Только + *
Условный оператор
Напишите программу, которая считывает три числа и подсчитывает сумму только положительных чисел.
Формат входных данных
На вход программе подаются три целых числа.
Формат выходных данных
Программа должна вывести одно число – сумму положительных чисел.
Примечание. Если положительных чисел нет, то следует вывести .
| |
|
Сила трех
Условный оператор
Трое волшебников из округа Феймарч защищают свою землю от темных сил. Каждый волшебник обладает своей собственной магической силой. Первый волшебник имеет магическую силу равную MP1 , второй – MP2 , третий – MP3.
Три волшебника смогут победить темные силы, если как минимум у двоих из них сила будет не меньше, чем у темных сил.
Определите, какую максимальную силу могут выдержать эти волшебники, чтобы успешно справиться с темными силами.
Входные данные
Программа получает на вход три целых положительных числа MP1 , MP2 , MP3 , не превосходящие 2×109, – магические силы каждого из волшебников.
Выходные данные
Программа должна вывести одно число – максимальную силу, которую они смогут победить.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
30
10
20 |
20 |
| |
|
Сила трех
Условный оператор
Трое волшебников из округа Феймарч защищают свою землю от темных сил. Каждый волшебник обладает своей собственной магической силой. Первый волшебник имеет магическую силу равную MP1 , второй – MP2 , третий – MP3.
Три волшебника смогут победить темные силы, если как минимум у двоих из них сила будет не меньше, чем у темных сил.
Определите, какую максимальную силу могут выдержать эти волшебники, чтобы успешно справиться с темными силами.
Входные данные
Программа получает на вход три целых положительных числа MP1 , MP2 , MP3 , не превосходящие 2×109, – магические силы каждого из волшебников.
Выходные данные
Программа должна вывести одно число – максимальную силу, которую они смогут победить.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
30
10
20 |
20 |
| |
|
Подъемник
Вывод формулы
Условный оператор
На стройку многоэтажного дома завезли инструменты. Прорабу необходимо доставить инструменты с этажа A на этаж B . Для вызова подъемника на всех этажах строящегося здания, кроме первого и последнего, есть две кнопки. Кнопка вниз перемещает подъемник вниз, кнока вверх - перемещает вверх. Когда прораб нажал нужную кнопку, подъемник находился на этаже С и вез груз на этаж D . Работает подъемник следующим образом:
- если подъемник проезжает мимо этажа, на котором нажата кнопка вызова, и, при этом, движется в подходящем направлении, то подъемник останавливается и в него можно зайти.
Подъемник перемещается между соседними этажами за одну единицу времени, также одну единицу времени занимает остановка подъемника на этаже для загрузки или разгрузки.
Определите сколько времени необходимо прорабу, чтобы доставить инструменты до этажа B , при условии, что никто больше не будет вызывать подъемник.
Входные данные
Первая строка ввода содержит четыре целых числа A , B , C и D , разделенных одним пробелом (1 <= A, B, C, D <= 20, A≠B, C≠D, A≠C).
Выходные данные
Вывести одно целое число – количество единиц времени, которое пройдет с момента вызова подъемника до момента, когда инструменты разгрузят из подъемника на этаже B .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3 9 2 5 |
10 |
2 |
3 9 5 2 |
13 |
Примечание
Пояснение к примеру 1
Подъемник за 1 единицу времени доедет до 3-го этажа, остановится на 1 единицу времени, чтобы прораб смог погрузить инструменты на подъемник, затем через 2 единицы времени доедет до 5-го этажа и остановится на 1 единицу времени для разгрузки груза, через 4 единицы времени подъемник довезет инструменты до 9-го этажа, и через 1 единицу времени инструменты рагрузят.
| |
|
Контейнер артефактов
Условный оператор
Магистр Максимус отправился на поиски волшебных реликвий в глубины древнего храма. В храме находятся два вида артефактов - драгоценные камни и мистические амулеты. Камней A штук, а амулетов - B штук. Для того, чтобы вынести артефакты из храма, Максимус использует специальные контейнеры, в каждый из которых можно поместить только три артефакта. При этом в каждом контейнере должны быть артефакты обоих видов - либо два камня и один амулет, либо один камень и два амулета.
Помогите Магистру Максимусу определить, можно ли упаковать все имеющиеся артефакты в контейнеры, и если да, то предложить подходящий способ размещения артефактов по контейнерам.
Входные данные
Программа получает на вход два целых числа A и B , записанных в отдельных строках. 1 <= A <= 109, 1 <= B <= 109.
Выходные данные
Если можно разложить все артефакты по контейнерам в соответствии с условием задачи, программа должна вывести два целых числа. Первое число равно количеству контейнеров, в которых лежит два драгоценных камня и один амулет. Второе число равно количеству контейнеров, в которых лежит один драгоценный камень и два амулета.
Если разложить все артефакты по контейнерам нужным способом нельзя, программа должна вывести одно число -1 .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
5 |
1 2 |
2 |
5
3 |
-1 |
| |
|
Голова и форточка
Условный оператор
Вася любит играть в шахматы со своим лучшим другом Петей. Вася увидел в окно Петю и захотел пригласить его сыграть партию. Для того, чтобы Петя услышал Васю, Васе необходимо высунуть голову в форточку и позвать Петю. Форточка прямоугольная размером a на b см. Голова Васи круглая диаметром d см. Напишите программу, которая определит, сможет ли Вася позвать Петю, высунув голову в форточку. Учитывайте, что для прохождения головы в форточку необходим зазор в 1 см с каждой стороны (по ширине и длине форточки).
Входные данные
Программа получает на вход три натуральных числа, a, b и d, каждое в отдельной строке. Каждое число не превышает 100.
Выходные данные
Выведите YES , если Вася сможет позвать Петю, в противном случае выведите NO .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
3
2
1 |
YES |
2 |
3
2
2 |
NO |
| |
|
Разборчивая невеста
Условный оператор
Разборчивая невеста при выборе женихов руководствуется правилом: "жених должен быть старше ее, но ненамного". По известным возрастам невесты - N лет и женихов: R лет, F лет и S лет (все возраста женихов разные и больше возраста невесты), определите, которого она выберет - первого, второго или третьего.
Формат входных данных
На вход программе подается четыре числа, по одному в строке:
- в первой строке - возраст невесты;
- в следующих трёх - возраста женихов (R , F и S соответственно).
Формат выходных данных
Вывести букву жениха (R , F или S ), которого выберет невеста.
| |
|
Пицца
Условный оператор
Компания из \(M\) человек пришла в пиццерию. Посовещавшись, они решили заказать одну большую пиццу с \(K\) начинками. Пицца представляет собой круг, поделённый на \(K\) равных секторов, в каждом из которых находится своя начинка. Пиццу подают ещё не разрезанной.
Друзья попросили официанта разрезать пиццу на \(M\) равных секторов, по одному куску на человека, так, чтобы как можно большему количеству людей достался кусок по крайней мере с двумя начинками.
Помогите официанту определить, какому именно количеству людей достанется больше одной начинки, если резать пиццу наиболее оптимально.
Формат входных данных
Вводятся два целых числа \(K\), \(M\) (\(1 \le K \le 100\), \(1 \le M \le 100\)) — количество начинок в пицце и количество человек в компании соответственно.
Формат выходных данных
Выведите количество человек, которым достанется более одной начинки в наилучшем случае.
Примечание
В первом тесте каждому достанется по две начинки, если резать как угодно, но не по границам секторов с начинками.
Во втором тесте не важно как резать: в любом случае обоим достанется по половине пиццы, в каждой из которых будет больше одной начинки.
| |
|
Максимум из трех
Условный оператор
Входные данные
Даны три целых числа, каждое записано в отдельной строке.
Выходные данные
Выведите наибольшее из данных чисел (программа должна вывести ровно одно целое число).
| |
|
Существует ли треугольник?
Условный оператор
Входные данные
Даны три натуральных числа a, b, c, записанные в отдельных строках. Определите, существует ли невырожденный треугольник с такими сторонами.
Выходные данные
Если треугольник существует, выведите строку YES, иначе выведите строку NO.
| |
|
Совпадающие числа
Условный оператор
Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадает) или 0 (если все числа различны).
Входные данные
Вводятся три целых числа, по одному в строке.
Выходные данные
Выведите ответ на задачу.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
2
3 |
0 |
| |
|
Ход ладьи
Условный оператор
Поле шахматной доски определяется парой чисел (a, b), каждое от 1 до 8, первое число задает номер столбца, второе – номер строки. Заданы две клетки. Определите, может ли шахматная ладья попасть с первой клетки на вторую за один ход.
Входные данные
Даны 4 целых числа от 1 до 8 каждое, первые два задают начальную клетку, вторые два задают конечную клетку. Начальная и конечная клетки не совпадают.
Выходные данные
Программа должна вывести YES, если из первой клетки ходом ладьи можно попасть во вторую, или NO в противном случае.
| |
|
Ход слона
Условный оператор
Поле шахматной доски определяется парой чисел (a, b), каждое от 1 до 8, первое число задает номер столбца, второе – номер строки. Заданы две клетки. Определите, может ли шахматный слон попасть с первой клетки на вторую за один ход.
Входные данные
Даны 4 целых числа от 1 до 8 каждое, первые два задают начальную клетку, вторые два задают конечную клетку. Начальная и конечная клетки не совпадают.
Выходные данные
Программа должна вывести YES, если из первой клетки ходом слона можно попасть во вторую, или NO в противном случае.
| |
|
Квадратное уравнение
Условный оператор
Даны действительные числа a, b, c. Найдите все решения квадратного уравнения ax2 + bx + c = 0.
Входные данные
Даны три действительных числа, a не равно 0.
Выходные данные
Выведите два действительных числа в любом порядке, если уравнение имеет два корня, одно действительное число – при наличии одного корня. При отсутствии действительных корней ничего выводить не нужно.
| |
|
Цифра в числе
Условный оператор
Цикл while
Целые числа
Входные данные
Вводятся 2 числа: x и d.
Выходные данные
Подсчитайте и выведите одно число - сколько раз встречается в записи натурального числа x цифра d.
| |
|
Фермерские будни
Условный оператор
Год назад Флатландию потряс серьезный экономический кризис, после которого, с целью снижения издержек, фермер Джон и фермер Билл решили объединить свои фермы. За год совместной продуктивной работы на объединенной территории было построено четыре сарая.
Однако последствия кризиса в последнее время ощущаются все меньше, да и совместное ведение хозяйства – дело непростое. Поэтому фермеры решили снова разделить свои фермы.
Для раздела ферм решено было построить забор. Разумеется, прежде чем приступить к строительству, фермеры взяли карту совместного хозяйства и стали обсуждать возможное положение забора. Забор должен представлять собой прямую линию. Поскольку по закону границы участков должны быть направлены либо с севера на юг, либо с запада на восток, забор на карте должен представлять собой прямую, параллельную краю карты – вертикальную либо горизонтальную.
Единственная проблема – четыре построенных за год совместной работы сарая. Разумеется, каждому фермеру в результате раздела должно достаться по два сарая. Поэтому после постройки забора два сарая должны оказаться с одной стороны от него, а два других – с другой.
Помогите фермерам найти такое положение для забора. Забор может проходить непосредственно вдоль стены сарая.
Входные данные
На вход программы поступают четыре четверки целых чисел. Каждая четверка описывает один сарай. Первые два числа в описании сарая – это координаты на карте его левого нижнего угла, следующие два числа – координаты правого верхнего угла.
Система координат размещена таким образом, что ось OX направлена слева направо, а ось OY – снизу вверх. Оси координат параллельны краям карты. Стороны сараев также параллельны краям карты. Сараи не имеют общих точек. Каждый сарай имеет ненулевую площадь. Все координаты неотрицательны и не превышают 109.
Выходные данные
Если построить забор, удовлетворяющий всем условиям, невозможно, выведите слово «Impossible».
В противном случае в первой строке выведите слово «Vertical», если забор следует построить параллельно вертикальному краю карты, или слово «Horizontal», если забор следует построить параллельно горизонтальному краю карты.
В следующей строке выведите координату x всех точек забора, если он должен быть вертикальным, либо координату y всех точек забора, если он должен быть горизонтальным. Выведенная координата должна быть целым числом (несложно показать, что если забор можно построить, то его можно построить так, чтобы искомая координата была целой).
Приведенные ниже рисунки соответствуют примерам входных данных.
| |
|
Матрица
Условный оператор
Двумерные массивы
Дан набор натуральных чисел: a1, …, aN. По этому набору строится таблица чисел размером N x N по следующему правилу: в клетку i-го столбца j-й строки записывается большее из чисел ai и aj при i ≠ j (если ai = aj, то записывается это число); на пересечении i-го столбца и i-й строки записывается число 0.
Дана таблица чисел. Требуется определить, могла ли она быть построена по данным правилам из какого-либо набора чисел a1, …, aN.
Входные данные
В первой строке входных данных задается натуральное число N – размер таблицы (1 ≤ N ≤ 500). В следующих N строках содержится по N чисел – числа соответствующей строки из таблицы (все числа целые неотрицательные и не превосходят 1 000).
Выходные данные
В одну строку выведите через пробел числа a1, …, aN. Если решений несколько, выведите любое из них. Если набора, удовлетворяющего данной таблице, не существует, выведите одно число "-1".
| |
|
Календарь
Условный оператор
Календарь на июнь 2007 года, висящий у меня на стене, выглядит следующим образом:
Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
В этом календаре числа располагаются в 5 строк. Вам требуется написать программу, которая определит, сколько строк чисел будет в подобном календаре на любой заданный месяц.
Входные данные
Вводятся два числа D и F.
D – количество дней в месяце, натуральное число от 28 до 31.
F – номер дня недели, на который приходится первое число данного месяца (1 – понедельник, 2 – вторник, … , 7 – воскресенье).
Выходные данные
Выведите количество строк чисел в календаре на указанный месяц.
| |
|
И снова лифт
Условный оператор
В торговом центре этажи нумеруются так: …, –3, –2, –1, 1, 2, 3, … (нулевого этажа нет!). Вася спустился на лифте с этажа с номером A на B этажей, а затем поднялся на лифте на C этажей. Требуется определить, на каком этаже он оказался.
Входные данные
Вводятся три числа A, B и C.
А – целое число от –100 до 100, не равное нулю.
B и С – натуральные числа, не превосходящие 100.
Выходные данные
Выведите одно число – номер этажа, на котором окажется Вася.
| |
|
Упаковка
Условный оператор
В одну транспортную компанию поступил заказ на перевозку двух ящиков из одного города в другой. Для перевозки ящики решено было упаковать в специальный контейнер.
Ящики и контейнер имеют вид прямоугольных параллелепипедов. Длина, ширина и высота первого ящика – l1, w1 и h1, соответствующие размеры второго ящика – l2, w2 и h2. Контейнер имеет длину, ширину и высоту lс, wс и hс.
Поскольку ящики содержат хрупкое оборудование, после упаковки в контейнер каждый из них должен остаться в строго вертикальном положении. Таким образом, ящики можно разместить рядом или один на другом. Для надежного закрепления в контейнере стороны ящиков должны быть параллельны его сторонам. Иначе говоря, если исходно ящики были расположены так, что все их стороны параллельны соответствующим сторонам контейнера, то каждый из них разрешается перемещать и поворачивать относительно вертикальной оси на угол, кратный 90 градусам.
Разумеется, после упаковки оба ящика должны полностью находиться внутри контейнера и не должны пересекаться.
Выясните, можно ли поместить ящики в контейнер с соблюдением указанных условий.
Входные данные
Первая строка входных данных содержит l1, w1 и h1, вторая – l2, w2 и h2, третья – lс, wс и hс. Все размеры – целые положительные числа, не превышающие 1000. Числа в строках разделены пробелами.
Выходные данные
Выведите YES, если ящики можно упаковать в контейнер, и NO в противном случае.
| |
|
Манхаттанский полицейский
Динамическое программирование на графах
Условный оператор
Недавно Билл устроился на работу полицейским. Теперь ему предстоит каждый вечер обходить свой участок, который представляет собой прямоугольник, состоящий из N×M кварталов. Каждый квартал имеет вид квадрата размером 100×100 метров, кварталы отделены друг от друга прямыми улицами.
Таким образом, через участок Билла проходит N + 1 улица, идущая с запада на восток и M + 1 улица, идущая с севера на юг. Перекрестки разбивают улицы на (N + 1)M + (M + 1) N отрезков, каждый из которых имеет длину 100 метров.
Совершая обход, Билл выходит из полицейского управления, расположенного около юго-западного угла его участка, обходит свой участок и возвращается в управление. Во время обхода Билл должен пройти по каждому отрезку улицы на территории своего участка как минимум один раз. Известно, что во время обхода Билл проходит отрезок длиной 100 метров за одну минуту. Выясните, какое минимальное число минут потребуется Биллу, чтобы совершить обход.
Входные данные
Вводятся целые числа N и M, разделенные пробелом (1≤N, M≤10 000).
Выходные данные
Выведите минимальное время, за которое Билл может совершить обход.
Пояснение ко второму примеру
Один из возможных оптимальных путей для Билла во втором примере показан на рисунке.
| |
|
Яша плавает в бассейне
Условный оператор
Яша плавал в бассейне размером 𝑁 x 𝑀 метров и устал. В этот момент он обнаружил, что находится на расстоянии 𝑥 метров от одного из длинных бортиков (не обязательно от ближайшего) и y𝑦 метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?
Входные данные
Вводятся 4 натуральных числа: 𝑁, 𝑀, 𝑥, 𝑦 (N ≠ M), разделенные пробелами. Все числа не превосходят 100.
Выходные данные
Требуется вывести одно число – минимальное расстояние, которое должен проплыть Яша, чтобы выбраться на бортик.
| |
|
Сеня наблюдает за кузнечиками
Условный оператор
Циклы
На прямой тропинке на расстоянии 1 метр друг от друга сидят два кузнечика. Время от времени один из кузнечиков прыгает на несколько сантиметров влево или вправо. Требуется узнать, каково было минимальное расстояние, на которое сближались кузнечики в процессе прыжков. (Расстояние считается только в те моменты, когда оба кузнечика сидят на земле).
Входные данные
В первой строке вводится одно число N (1 ≤ N ≤ 100) – общее количество прыжков, а затем N чисел, описывающих прыжки. Модуль числа равен длине прыжка в сантиметрах; число отрицательное, если кузнечик начинал этот прыжок по направлению к другому кузнечику, и положительное – если от другого кузнечика. Числа по модулю не превосходят 100 и все отличны от 0. (Кузнечики могут перепрыгивать друг через друга. Гарантируется, что кузнечики не приземляются друг на друга.)
Выходные данные
Требуется вывести одно число – минимальное расстояние в сантиметрах, на которое сближались
| |
|
Куб
Одномерные массивы
Условный оператор
Петя склеил из N3 единичных кубиков большой куб размером N × N × N. Устав от этой сложной работы, он отправился спать, а утром, проснувшись, с ужасом обнаружил, что его младший брат Ваня K раз проткнул куб спицей.
При этом Ваня действовал очень аккуратно, каждый раз установив конец спицы точно в центр грани какого-нибудь граничного единичного кубика, он протыкал куб параллельно соответствующей оси координат, при этом целый ряд из N кубиков оказывался испорчен.
Немного успокоившись после этого тяжелого потрясения, Петя заинтересовался, сколько кубиков в его творении осталось неповрежденными. Помогите ему ответить на этот сложный вопрос.
Входные данные
В первой строке вводятся числа N и K (1 <= N <= 1000, 0 <= K <= 150). Следующие K строк описывают Ванины преступные действия. Каждая строка содержит три числа - два из них представляют собой соответствующие координаты всех кубиков, проткнутых спицей, а третье, соответствующее координате, в направлении которой был проткнут куб, равно 0. Например, если N = 3, тройка (1, 0, 3) означает, что спицей были проткнуты кубики (1, 1, 3), (1, 2, 3) и (1, 3, 3). Все координаты лежат в пределах от 1 до N. Известно, что Ваня никакое действие не выполнял два раза (т.е. никакая тройка не встретится во входных данных дважды).
Выходные данные
Выведите единственное число - количество неповрежденных кубиков.
| |
|
Номер месяца
Условный оператор
По заданному числу определить название месяца.
Входные данные
Вводится одно натуральное число N, 1 ≤ N ≤ 12
Выходные данные
Программа выводит КОД месяца согласно таблице:
| |
|
Змей Горыныч
Условный оператор
Илья Муромец идет на битву со Змеем Горынычем. У Змея Горыныча М голов, Илья Муромец за один удар отрубает N голов, после удара Змей Горыныч регенерирует K голов. Далее процесс повторяется, пока головы не кончатся.
Напишите программу, которая определяет, сможет ли Илья Муромец одолеть Змея Горыныча и, если да, то сколько ударов для этого потребуется.
Входные данные
Программа получает три числа, записанных через пробел — N, M и K (1 ≤ N , M, K ≤ 109), где N – число голов, которые Илья Муромец срубает одним ударом, M – число голов Змея Горыныча, K – число голов, которые Змей Горыныч регенерирует за раз.
Выходные данные
Вывести число ударов, которые должен нанести Илья Муромец, чтобы убить Змея Горыныча. Если одолеть Змея Горыныча при заданных исходных данных невозможно, то следует вывести «NO» (без кавычек заглавными буквами).
| |
|
Стозначные числа
Условный оператор
Цикл for
Требуется сравнить два 100-значных числа.
Входные данные
На вход программы поступают два 100-значных натуральных числа A и B. Каждое число вводится на отдельной строке.
Выходные данные
Если A>B, то выведите “>” (один символ без кавычек).
Если A<B, то выдайте “<”.
Если A=B, выдайте “=”.
Комментарий
В примерах числа 111…1 и 222…2 состоят из 100 знаков.
| |
|
Парты
Цикл for
Условный оператор
Сколько понадобится парт, чтобы рассадить A
школьников, если за одну парту можно посадить одного или двух человек? За каждой партой должен сидеть хотя бы один человек. Укажите все варианты.
Входные данные
Вводится одно натуральное число — A
( 1 ≤ A ≤ 10000)
Выходные данные
Выведите упорядоченный по возрастанию набор чисел – все возможные значения количества необходимых парт.
| |
|
Кони
Условный оператор
Сколько существует клеток на доске размером K * K таких, что шахматный конь, стоящий на этой клетке, бьет ровно N полей?
Входные данные
Вводятся натуральные числа K и N (1 ≤ K ≤ 100, 2 ≤ N ≤ 8).
Выходные данные
Выведите количество клеток, с которых конь бьет ровно N
полей.
Комментарий
на доске 8*8 конь бьет ровно два поля только с угловых клеток, их 4.
| |
|
Прямоугольник
Условный оператор
Петя нарисовал на клетчатой бумаге прямоугольник по линиям сетки. После этого он подсчитал количество узлов сетки, оказавшихся внутри (не на границе!) прямоугольника и количество единичных отрезков сетки внутри прямоугольника и сообщил эти два числа Васе. Напишите программу, которая поможет Васе определить длины сторон прямоугольника.
Входные данные
Вводятся два целых неотрицательных числа K и L – количество узлов и единичных отрезков сетки соответственно. Оба числа не превосходят 1000.
Выходные данные
Выведите два натуральных числа – длины сторон прямоугольника в любом порядке. Если ответов несколько, выведите любой из них. Гарантируется, что ответ всегда существует.
| |
|
Маршрутка
Условный оператор
Вы сидите на первом сидении в маршрутном такси. Проезд в маршрутке стоит 10 рублей. Вам передают купюры достоинством в 10, 50 и 100 рублей (с каждой купюры – на билет за одного пассажира). Часть из них вы можете сразу раздать в качестве сдачи (её можно выдать полностью или частично). Остальные купюры вы передаете водителю. Какое наименьшее количество купюр вам придется передать водителю?
Входные данные
Вводится три целых неотрицательных числа (каждое не превосходит 100) – количество 10-, 50- и 100-рублевых купюр, которые вам передали.
Выходные данные
Выведите одно число – наименьшее возможное количество купюр, которое придется передать водителю.
| |
|
СтатГрад
Условный оператор
В Москве установили счетчики системы СтатГрад для учета и контроля над силой града. Каждый счетчик системы учитывает количество попаданий в него градин за сутки. Если в него попадает меньше a градин, то он передает сигнал NO GRAD. Если попадает не меньше a градин, но меньше b градин, то он передает сигнал GRAD. Если больше либо равно b градин – то он ломается, и не передает никакого сигнала.
Даны числа a и b (a < b), а также количество попавших в счетчик градин. Требуется определить, какой сигнал нужно передать.
Входные данные
Вводятся три натуральных числа, не превосходящих 1000: a, b и количество градин.
Числа разделены пробелом.
Выходные данные
Выведите либо NO GRAD, либо GRAD, либо не выводите ничего.
| |
|
Четвертная оценка
Условный оператор
Цикл for
Вася хочет узнать, какую оценку он получит в четверти по информатике. Учитель придерживается следующей системы: вычисляется среднее арифметическое всех оценок в журнале, и ставится ближайшая целая оценка, не превосходящая среднего арифметического.
При этом если у школьника есть двойка, а следующая за ней оценка – не двойка, то двойка считается закрытой, и при вычислении среднего арифметического не учитывается.
Входные данные
Вводится десять натуральных чисел от 2 до 5 через пробел – оценки Васи.
Выходные данные
Выведите натуральное число (от 2 до 5) – его четвертную оценку.
| |
|
Времена года
Условный оператор
Напишите программу, которая вводит номер месяца и выводит название времени года на английском языке. При вводе неверного номера месяца должно быть выведено слово 'NO'.
Формат входных данных
Входная строка содержит единственное число – номер месяца (возможно, неверный).
Формат выходных данных
Нужно вывести название времени года (на английском языке), соответствующее введённому номеру месяца ('winter ' – зима, 'spring ' – весна, 'summer ' – лето, 'autumn ' – осень). Если введён неверный номер месяца, программы должна вывести слово 'NO '.
| |
|
Апельсины бочками
Условный оператор
Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес – отгружать апельсины бочками. Партнерам важно знать сколько именно бочек апельсинов отгружается каждый день.
Мобильный телефон Василия поддерживает только транслит, поэтому он передает сообщения вида "N bochek" . Например, "3 bochki" или "1 bochka" .
Напишите программу, которая выбирает правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от N.
Формат входных данных
Одно число N (0 ≤ N ≤ 1000).
Формат выходных данных
Фраза на транслите (см. примеры).
| |
|
Таймер
Дата и время
Условный оператор
Строки
Таймер - это часы, которые умеют подавать звуковой сигнал по прошествии некоторого периода времени. Напишите программу, которая определяет, когда должен быть подан звуковой сигнал.
Входные данные:
В первой строке записано текущее время в формате ЧЧ:ММ:СС (с ведущими нулями). При этом оно удовлетворяет ограничениям: ЧЧ - от 00 до 23, ММ и СС - от 00 до 60.
Во второй строке записан интервал времени, который должен быть измерен. Интервал записывается в формате Ч:М:С (где Ч, М и С - от 0 до 109, без ведущих нулей). Дополнительно если Ч=0 (или Ч=0 и М=0), то они могут быть опущены. Например, 100:60 на самом деле означает 100 минут 60 секунд, что то же самое, что 101:0 или 1:41:0.
А 42 обозначает 42 секунды. 100:100:100 - 100 часов, 100 минут, 100 секунд, что то же самое, что 101:41:40.
Выходные данные:
В ответе выведите в формате ЧЧ:ММ:СС время, когда прозвучит звуковой сигнал. При этом если сигнал прозвучит не в текущие сутки, то дальше должна следовать запись +<кол-во> days . Например, если сигнал прозвучит на следующий день - то +1 days .
Примеры
№ |
Входные данные |
Выходные данные |
1 |
01:01:01
48:0:0
|
01:01:01+2 days |
2 |
01:01:01
58:119
|
02:01:00 |
3 |
23:59:59
1
|
00:00:00+1 days |
| |
|
Сапер
Двумерные массивы
Условный оператор
Мальчику Васе очень нравится известная игра "Сапер" ("Minesweeper").
В "Сапер" играет один человек. Игра идет на клетчатом поле (далее будем называть его картой) NxM (N строк, M столбцов). В K клетках поля стоят мины, в остальных клетках записано либо число от 1 до 8 — количество мин в соседних клетках, либо ничего не написано, если в соседних клетках мин нет. Клетки являются соседними, если они имеют хотя бы одну общую точку, в одной клетке не может стоять более одной мины. Изначально все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. Если в открытой им клетке оказывается мина — он проигрывает, иначе игроку показывается число, которое стоит в этой клетке, и игра продолжается. Цель игры — открыть все клетки, в которых нет мин.
У Васи на компьютере есть эта игра, но ему кажется, что все карты, которые в ней есть, некрасивые и неинтересные. Поэтому он решил нарисовать свои. Однако фантазия у него богатая, а времени мало, и он хочет успеть нарисовать как можно больше карт. Поэтому он просто выбирает N, M и K и расставляет мины на поле, после чего все остальные клетки могут быть однозначно определены. Однако на определение остальных клеток он не хочет тратить свое драгоценное время. Помогите ему!
По заданным N, M, K и координатам мин восстановите полную карту.
Входные данные
В первой строке входного файла содержатся числа N, M и K (1≤N≤200, 1≤M≤200, 0≤K≤N≤M). Далее идут K строк, в каждой из которых содержится по два числа, задающих координаты мин. Первое число в каждой строке задает номер строки клетки, где находится мина, второе число — номер столбца. Левая верхняя клетка поля имеет координаты (1,1), правая нижняя — координаты (N,M).
Выходные данные
Выходной файл должен содержать N строк по M символов — соответствующие строки карты. j-й символ i-й строки должен содержать символ ‘*‘ (звездочка) если в клетке (i,j) стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо ‘.‘ (точка), если клетка (i,j) пустая.
| |
|
Многочлен
Строки
Условный оператор
Васе задали несколько однотипных задач по математике: «найти значение многочлена». Он хочет написать программу, которая по заданному многочлену и значению x находила бы ответ. Напишите такую программу!
Входные данные
В первой строке входного файла записан многочлен в виде суммы одночленов. Между одночленами находится знак + или –. Перед первым одночленом может быть знак –. Одночлен записывается как
[<Коэффициент>*]x[^<Степень>]
или
<Коэффициент>
где <Коэффициент> — натуральное число, не превосходящее 100, x — символ переменной (всегда маленькая латинская буква x), <Степень> — натуральное число, не превосходящее 4. Параметры, взятые в квадратные скобки, могут быть опущены. Во второй строке записано одно целое число — значение x.
Выходные данные
В выходной файл нужно записать одно число — значение данного многочлена при данном значении x.
Ограничения
Все числа в исходном файле по модулю не превосходят 100. Количество одночленов не более 10 (могут быть одночлены одинаковой степени).
| |
|