Тема: Готовимся к
олимпиадам. Условный оператор
Задача A. Максимум из двух чисел
Формат входных
данных
Даны два целых
числа, каждое число записано в отдельной строке.
Формат выходных
данных
Выведите наибольшее
из данных чисел.
Примеры
Входные данные
|
Выходные данные
|
1
2
|
2
|
Задача B. Високосный год
Требуется определить, является ли данный год
високосным. (Напомним, что год является високосным, если его номер кратен 4, но
не кратен 100, а также если он кратен 400.)
Примеры
Входные данные
|
Выходные данные
|
2007
|
NO
|
2000
|
YES
|
ЗадачаC. Тестирующая система
В условии одной из задач на этом сайте
написано: “Если данное четырехзначное число является симметричным, выведите 1,
иначе выведите любое другое целое число”. Для проверки задачи используются
заранее подготовленные примеры и правильные ответ на них.
Школьнику кажется, что он решил эту задачу, но
тестирующая система почему-то не принимает его решение. Школьник думает, что
это происходит оттого, что он выводит не то любое другое число, которое
записано в правильных ответах.
Напишите программу, которая по ответу,
записанному в тестирующей системе и по ответу школьника определяет, верно ли
школьник решил задачу. Программа получает на вход два числа: ответ, записанный
в тестирующей системе и ответ школьника. Программа должна вывести YES, если школьник дал верный ответ и NO в противном
случае.
Примеры
Входные данные
|
Выходные данные
|
11
-1
|
YES
|
3
1
|
NO
|
Задача D. Знак числа
В математике функция sign(x) (знак числа) определена так:
sign(x) = 1, если x > 0,
sign(x) = -1, если x < 0,
sign(x) = 0, если x = 0.
Для данного числа x
выведите значение sign(x).
Примеры
Входные данные
|
Выходные данные
|
179
|
1
|
Задача E. Какое из чисел больше?
Формат входных данных
Даны два целых числа, каждое записано в
отдельной строке.
Формат выходных данных
Программа должна вывести число 1, если первое
число больше второго, число 2, если второе больше первого, или число 0, если
они равны.
Примеры
Входные данные
|
Выходные данные
|
1
2
|
2
|
Задача F. Максимум из трех
Формат входных данных
Даны три целых числа, каждое записано в
отдельной строке.
Формат выходных данных
Выведите наибольшее из данных чисел (программа
должна вывести ровно одно целое число).
Примеры
Входные данные
|
Выходные данные
|
1
2
3
|
3
|
Задача G. Ладья
Требуется определить, бьет ли ладья, стоящая
на клетке с указанными координатами (номер строки и номер столбца), фигуру,
стоящую на другой указанной клетке. Вводятся четыре числа: координаты ладьи
(два числа) и координаты другой фигуры (два числа), каждое число вводится в
отдельной строке.
Примеры
Входные данные
|
Выходные данные
|
1
1
2
2
|
NO
|
1
1
2
1
|
YES
|
Задача H. Слон
Требуется определить, бьет ли слон, стоящий на
клетке с указанными координатами (номер строки и номер столбца), фигуру,
стоящую на другой указанной клетке. Вводятся четыре числа: координаты слона и
координаты другой фигуры.
Примеры
Входные данные
|
Выходные данные
|
1
1
2
2
|
YES
|
1
1
2
1
|
NO
|
Задача I. Ферзь
Требуется определить, бьет ли ферзь, стоящий
на клетке с указанными координатами (номер строки и номер столбца), фигуру,
стоящую на другой указанной клетке. Вводятся четыре числа: координаты ферзя и
координаты другой фигуры.
Примеры
Входные данные
|
Выходные данные
|
1
1
2
1
|
YES
|
1
1
3
2
|
NO
|
Задача J. Король
Поле шахматной доски определяется парой чисел
(a, b), каждое от 1 до 8, первое
число задает номер столбца, второе – номер строки. Заданы две клетки.
Определите, может ли шахматный король попасть с первой клетки на вторую за один
ход.
Формат входных данных
Даны 4 целых числа от 1 до 8 каждое, первые
два задают начальную клетку, вторые два задают конечную клетку. Начальная и
конечная клетки не совпадают. Числа записаны в отдельных строках.
Формат выходных данных
Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую, или NO в противном случае.
Пример
Входные данные
|
Выходные данные
|
1
2
2
2
|
YES
|
Задача K. Конь
Требуется определить, бьет ли конь, стоящий на
клетке с указанными координатами (номер строки и номер столбца), фигуру,
стоящую на другой указанной клетке. Вводятся четыре числа: координаты коня и
координаты другой фигуры.
Примеры
Входные данные
|
Выходные данные
|
1
1
3
2
|
YES
|
1
1
3
3
|
NO
|
Задача L. Шоколадка
Требуется определить, можно ли от шоколадки
размером n × m долек отломить k долек, если разрешается сделать один разлом по прямой между дольками
(то есть разломить шоколадку на два прямоугольника). Вводятся 3 числа: n, m и k; k не равно n × m.
Гарантируется, что количество долек в шоколадке не превосходит 30000.
Примеры
Входные данные
|
Выходные данные
|
3
2
4
|
YES
|
3
2
1
|
NO
|
Задача M. Фишки
В каждую крайнюю клетку квадратной доски
поставили по фишке. Могло ли оказаться, что выставлено ровно k фишек? (Например, если доска 2 x 2, то выставлено
4 фишки, а если 6 x 6 - то 20).
Вводится одно натуральное число k.
Примеры
Входные данные
|
Выходные данные
|
20
|
YES
|
13
|
NO
|
Задача N. Уравнение
Решить в целых числах уравнение ax + b = 0. Вводятся 2 числа: a
и b. Необходимо вывести все решения, если их число
конечно, “NO” (без кавычек), если решений нет, и “INF” (без кавычек), если решений бесконечно много.
Примеры
Входные данные
|
Выходные данные
|
1
1
|
-1
|
2
1
|
NO
|
Задача O. Сложное уравнение
Решить в целых числах уравнение ( ax + b ) : ( cx + d ) = 0. Вводятся 4 числа: a, b, c и d; c и d не равны нулю одновременно. Необходимо
вывести все решения, если их число конечно, “NO” (без
кавычек), если решений нет, и “INF” (без кавычек), если
решений бесконечно много.
Примеры
Входные данные
|
Выходные данные
|
1
1
3
2
|
-1
|
1
1
1
1
|
NO
|
Задача P. Сдача
Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить? Вводятся 4 числа: a, b, c и d. Необходимо вывести 2 числа: e и f, число рублей и копеек, соответственно.
Примеры
Входные данные
|
Выходные данные
|
2
1
3
2
|
1 1
|
2
1
4
0
|
1 99
|
Задача Q.
Мороженое
В кафе мороженое продают по три шарика и по
пять шариков. Можно ли купить ровно k шариков мороженого?
Примеры
Входные данные
|
Выходные данные
|
3
|
YES
|
1
|
NO
|
Задача R. Котлеты
На сковородку одновременно можно положить k
котлет. Каждую котлету нужно с каждой стороны обжаривать m минут непрерывно. За
какое наименьшее время удастся поджарить с обеих сторон n котлет? Вводятся 3
числа: k, m и n. Все числа не превосходят 32000.
Примеры
Входные данные
|
Выходные данные
|
1
1
1
|
2
|
2
2
1
|
4
|
Задача S. Координатные четверти
Даны координаты двух точек на плоскости,
требуется определить, лежат ли они в одной координатной четверти или нет (все
координаты отличны от нуля). Вводятся 4 числа: координаты первой точки (x1, y1) и координаты второй точки (x2, y2).
Примеры
Входные данные
|
Выходные данные
|
1
1
3
2
|
YES
|
1
1
-1
1
|
NO
|
Задача T. Существует ли треугольник?
Формат входных данных
Даны три натуральных числа a, b, c, записанные в
отдельных строках. Определите, существует ли треугольник с такими сторонами.
Формат выходных данных
Если треугольник существует, выведите строку YES, иначе выведите строку NO.
Пример
Входные данные
|
Выходные данные
|
3
4
5
|
YES
|
Задача U. Количество равных из трех
Формат входных данных
Даны три целых числа, записанных в отдельных
строках. Определите, сколько среди них совпадающих.
Формат выходных данных
Программа должна вывести одно из чисел: 3 (если
все совпадают), 2 (если два совпадают) или 0 (если все числа различны).
Примеры
Входные данные
|
Выходные данные
|
1
2
2
|
2
|
Задача V. Квадратное уравнение
Даны действительные числа a, b, c. Найдите все решения
квадратного уравнения ax2 + bx + c = 0.
Формат входных данных
Даны три действительных числа, a не равно 0.
Формат выходных данных
Выведите два действительных числа, если
уравнение имеет два корня, одно действительное число – при наличии одного
корня. При отсутствии действительных корней ничего выводить не нужно.
Примеры
Входные данные
|
Выходные данные
|
1
0
0
|
0
|
Задача W. Тип треугольника
Определите тип треугольника (остроугольный,
тупоугольный, прямоугольный) с данными сторонами.
Формат входных данных
Даны три натуральных числа – стороны
треугольника.
Формат выходных данных
Необходимо вывести одно из слов: right для прямоугольного треугольника, acute для
остроугольного треугольника, obtuse для тупоугольного
треугольника или impossible, если входные числа не
образуют треугольника.
Примеры
Входные данные
|
Выходные данные
|
3
4
5
|
right
|
Задача X. Коровы
По данному числу n
закончите фразу "На лугу пасется..." одним из возможных продолжений:
"n коров", "n
корова", "n коровы", правильно склоняя
слово "корова".
Формат входных данных
Дано число n (n<100).
Формат выходных данных
Программа должна вывести введенное число n и одно из слов (на латинице): korov, korova или korovy, например, 1 korova, 2 korovy, 5 korov. Между
числом и словом должен стоять ровно один пробел.
Примеры
Входные данные
|
Выходные данные
|
1
|
1 korova
|
Задача Y. Билеты на метро
Билет на одну поездку в метро стоит 15 рублей,
билет на 10 поездок стоит 125 рублей, билет на 60 поездок стоит 440 рублей.
Пассажир планирует совершить n поездок. Определите,
сколько билетов каждого вида он должен приобрести, чтобы суммарное количество
оплаченных поездок было не меньше n, а общая стоимость
приобретенных билетов – минимальна.
Формат входных данных
Дано одно число n -
количество поездок.
Формат выходных данных
Выведите три целых числа, равные необходимому
количеству билетов на 1, на 10, на 60 поездок.
Примеры
Входные данные
|
Выходные данные
|
129
|
0 1 2
|
Задача Z. Билеты на метро – 2
Билет на одну поездку в метро стоит 15 рублей,
билет на 5 поездок стоит 70 рублей, билет на 10 поездок стоит 125 рублей, билет
на 20 поездок стоит 230 рублей, билет на 60 поездок стоит 440 рублей. Пассажир
планирует совершить n поездок. Определите, сколько билетов
каждого вида он должен приобрести, чтобы суммарное количество оплаченных
поездок было не меньше n, а общая стоимость приобретенных
билетов – минимальна.
Формат входных данных
Дано одно число n -
количество поездок.
Формат выходных данных
Выведите пять целых чисел, равные необходимому
количеству билетов на 1, на 5, на 10, на 20, на 60 поездок. Если для какого-то
данного n существует несколько способов приобретения
билетов одинаковой стоимости, необходимо вывести ту комбинацию билетов, которая
дает большее число поездок.
Примеры
Входные данные
|
Выходные данные
|
1
|
1 0 0 0 0
|
Задача AA. Координаты соседей
Для клетки с координатами (x, y) в таблице размером M × N выведите координаты ее соседей. Соседними называются клетки, имеющие
общую сторону.
Формат входного файла
Даны натуральные числа M,
N, x, y (1 ≤ x ≤ M ≤ 109, 1 ≤ y ≤ N ≤ 109).
Формат выходного файла
В выходной файл выведите пары координат
соседей этой клетки в произвольном порядке.
Примеры
Входные данные
|
Выходные данные
|
3 3
2 2
|
2 1
1 2
2 3
3 2
|
Задача AB. Апельсины бочками
Бизнесмен Василий после прочтения известной
книги решил открыть новый бизнес – отгружать апельсины бочками. Партнерам важно
знать сколько именно бочек апельсинов отгружается каждый день.
Мобильный телефон Василия поддерживает только
транслит, поэтому он передает сообщения вида "N bochek" . Например, "3 bochki" или
"1 bochka" .
Напишите программу, которая выбирает
правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от N.
Формат входного файла
Одно число N (0 ≤ N ≤ 1000).
Формат выходного файла
Фраза на транслите (см. примеры).
Примеры
Входные данные
|
Выходные данные
|
1
|
1 bochka
|
15
|
15 bochek
|
3
|
3 bochki
|
Задача AC. Четные и нечетные числа
Даны три целых числа A, B, C. Определить, есть ли среди них хотя бы одно
четное и хотя бы одно нечетное.
Формат входных данных
Числа A, B, C, не превышающие по модулю 10000.
Формат выходных данных
Одна строка – "YES"
или "NO" .
Примеры
Входные данные
|
Выходные данные
|
3
4
5
|
YES
|
7
7
7
|
NO
|
Задача AD. Римская система счисления
Дано число X. Требуется
перевести это число в римскую систему счисления.
Формат входного файла
Дано число X в десятичной
системе счисления (1 ≤ X ≤ 100).
Формат выходного файла
Выведите X в римской системе
счисления.
Примеры
Входные данные
|
Выходные данные
|
4
|
IV
|
19
|
XIX
|
46
|
XLVI
|
Задача AE. Упорядочить три числа
Дано три числа, записанный в отдельных
строках. Упорядочите их в порядке неубывания. Программа должна считывать три
числа a, b, c,
затем программа должна менять их значения так, чтобы стали выполнены условия a <= b <= c, затем
программа выводит тройку a, b, c.
Примеры
Входные данные
|
Выходные данные
|
1
2
1
|
1 1 2
|
Задача A. Максимум из двух чисел
var a,b,max:integer;
begin
read(a,b);
max:=a;
if b>max then max:=b;
write(max);
end.
Задача B. Високосный год
var a:integer;
begin
read(a);
if (a mod 4=0) and (a mod 100<>0) or (a mod 400=0)
then
write('YES') else write('NO');
end.
ЗадачаC. Тестирующая система
var a,b:longint;
begin
read(a,b);
if (a=1) and (b=1) or (a<>1) and (b<>1)
then write('YES')
else write ('NO');
end.
Задача D. Знак числа
var n:real;
begin
read(n);
if n>0 then write(1);
if n=0 then write(0);
if n<0 then write(-1);
//if n<>0 then write(n/ABS(n)) else write(0);
end.
Задача E. Какое из чисел больше?
var a,b:integer;
begin
read(a,b);
if a>b then write(1)
else if b>a then write(2)
else write(0);
end.
Задача F. Максимум из трех
var a,b,c,max:integer;
begin
read(a,b,c);
max:=a;
if b>max then max:=b;
if c>max then max:=c;
write(max);
end.
Задача G. Ладья
var a,b,c,d:integer;
begin
read(a,b,c,d);
if (a=c) or (b=d) then
write('YES')
else write('NO');
end.
Задача H. Слон
var a,b,c,d:integer;
begin
read(a,b,c,d);
if abs(a-c)=abs(b-d) then
write('YES')
else write('NO');
end.
Задача I. Ферзь
var a,b,c,d:integer;
begin
read(a,b,c,d);
if (abs(a-c)=abs(b-d)) or (a=c) or (b=d) then
write('YES')
else write('NO');
end.
Задача J. Король
var a,b,c,d:integer;
begin
read(a,b,c,d);
if ((abs(a-c)=0) or (abs(a-c)=1)) and ((abs(b-d)=0) or
(abs(b-d)=1)) then
write('YES')
else write('NO');
end.
Задача K. Конь
var a,b,c,d:integer;
begin
read(a,b,c,d);
if (abs(a-c)=1) and (abs(d-b)=2) or (abs(a-c)=2) and
(abs(d-b)=1) then
write('YES')
else write('NO');
end.
Задача L. Шоколадка
var n,m,k:integer;
begin
if k>n*m then
write('NO')
else if (k<>1) and ((k mod n=0) or (k mod m=0)) then
write('YES')
else write('NO');
end.
Задача M. Фишки
var k:integer;
begin
read(k);
if k=1 then write('YES')
else if k mod 4=0 then
write('YES')
else write('NO');
end.
Задача N. Уравнение
var a,b:integer;
begin
read(a,b);
if (a=0) and (b=0) then
write('INF')
else if (a=0) and (b<>0) then
write('NO')
else if b mod a=0 then
write(-(b div a))
else write('NO');
end.
Задача O. Сложное уравнение
var a,b,c,d:integer;
begin
read(a,b,c,d);
if (a=0) and (b=0) then
write('INF')
else if (a=0) and (b<>0) or (a=c) and (b=d) then
write('NO')
else if (a<>0) and (b mod a=0) and
(c*(-b/a)+d<>0) then
write(-b div a)
else write('NO');
end.
Задача P. Сдача
var a,b,c,d:integer;
begin
read(a,b,c,d);
if a*100+b>=c*100+d then
write(0,' ',0)
else
write((c*100+d-a*100-b) div 100,' ',(c*100+d-a*100-b)
mod 100);
end.
Задача Q.
Мороженое
var a,b,c,d:integer;
begin
read(a,b,c,d);
if a*100+b>=c*100+d then
write(0,' ',0)
else
write((c*100+d-a*100-b) div 100,' ',(c*100+d-a*100-b)
mod 100);
end.
Задача R. Котлеты
var k,m,n,t:longint;
begin
read(k,m,n);
if n<=k then t:=2*m
else
begin
t:=(2*n) div k*m;
if (2*n) mod k<>0 then t:=t+m;
end;
write(t);
end.
Задача S. Координатные четверти
var x1,y1,x2,y2:real;
begin
read(x1,y1,x2,y2);
if (x1/x2>0) and (y1/y2>0) then
write('YES')
else write('NO');
end.
Задача T. Существует ли треугольник?
var a,b,c:integer;
begin
read(a,b,c);
if (a+b>c) and (b+c>a) and (a+c>b) then
write('YES')
else write('NO');
end.
Задача U. Количество равных из трех
var a,b,c,d:integer;
begin
read(a,b,c);
d:=0;
if (a=b) and (b=c) then d:=3
else if (a=b) or (b=c) or (a=c) then d:=2;
write(d);
end.
Задача V. Квадратное уравнение
var a,b,c,d,x1,x2:real;
begin
read(a,b,c);
d:=b*b-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
write(x1,' ',x2)
end
else if d=0 then
begin
x1:=-b/(2*a);
write(x1);
end;
end.
Задача W. Тип треугольника
var a,b,c,max,m2,m3:longint;
begin
read(a,b,c);
if (a+b>c) and (b+c>a) and (a+c>b) then
begin
max:=a;m2:=b;m3:=c;
if b>max then begin max:=b;m2:=a;m3:=c;end;
if c>max then begin max:=c;m2:=b;m3:=a;end;
if m2*m2+m3*m3=max*max then write('right')
else if m2*m2+m3*m3>max*max then write('acute')
else write('obtuse')
end
else write('impossible');
end.
Задача X. Коровы
var n:integer;
begin
read(n);
if (n>=5) and (n<=20) then write(n,' korov')
else if (n mod 10=1) then write(n,' korova')
else if (n mod 10>=2) and (n mod 10<=4) then
write(n,' korovy')
else write(n,' korov');
end.
Задача Y. Билеты на метро
var n,n1,n10,n60,o60,o10:integer;
begin
read(n);
n60:=n div 60;
o60:=n mod 60;
if o60>=35 then n60:=n60+1
else
begin
n10:=o60 div 10;
o10:=o60 mod 10;
if o10=9 then n10:=n10+1
else n1:=o10;
end;
write(n1,' ',n10,' ',n60);
end.
Задача Z. Билеты на метро – 2
var n,n1,n5,n10,n20,n60,o60,o20,o10,o5:integer;
begin
read(n);
n60:=n div 60;
o60:=n mod 60;
if o60>=36 then n60:=n60+1
else
begin
n20:=o60 div 20;
o20:=o60 mod 20;
if o20>=18 then n20:=n20+1
else
begin
n10:=o20 div 10;
o10:=o20 mod 10;
if o10=9 then n10:=n10+1
else
begin
n5:=o10 div 5;
o5:=o10 mod 5;
n1:=o5;
end;
end;
end;
write(n1,' ',n5,' ',n10,' ',n20,' ',n60);
end.
Задача AA. Координаты соседей
var m,n,x,y:longint;
begin
read(m,n,x,y);
if x<m then writeln(x+1,' ',y);
if x>1 then writeln(x-1,' ',y);
if y<n then writeln(x,' ',y+1);
if y>1 then writeln(x,' ',y-1);
end.
Задача AB. Апельсины бочками
var n:integer;
begin
read(n);
if (n mod 100>=11) and (n mod 100<=14) then
write(n,' bochek')
else if (n mod 10=1) then write(n,' bochka')
else if (n mod 10>=2) and (n mod 10<=4) then
write(n,' bochki')
else write(n,' bochek');
end.
Задача AC. Четные и нечетные числа
var a,b,c:integer;
begin
read(a,b,c);
if ((a mod 2=0) or (b mod 2=0) or (c mod 2=0))
and ((a mod 2<>0) or (b mod 2<>0) or (c mod
2<>0))
then write('YES')
else write('NO');
end.
Задача AD. Римская система счисления
var x,a,b:integer;
begin
read(x);
a:=x div 10;
b:=x mod 10;
if x=100 then write('C');
if a=1 then write('X');
if a=2 then write('XX');
if a=3 then write('XXX');
if a=4 then write('XL');
if a=5 then write('L');
if a=6 then write('LX');
if a=7 then write('LXX');
if a=8 then write('LXXX');
if a=9 then write('XC');
if b=1 then write('I');
if b=2 then write('II');
if b=3 then write('III');
if b=4 then write('IV');
if b=5 then write('V');
if b=6 then write('VI');
if b=7 then write('VII');
if b=8 then write('VIII');
if b=9 then write('IX');
end.
Задача AE. Упорядочить
три числа
var a,b,c,max,sr,min,summa:integer;
begin
read(a,b,c);
summa:=a+b+c;
max:=a;
if b>max then max:=b;
if c>max then max:=c;
min:=a;
if b<min then min:=b;
if c<min then min:=c;
sr:=summa-(max+min);
a:=min;
b:=sr;
c:=max;
write(a,' ',b,' ',c);
end.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.