Добавлен: 17.03.2024
Просмотров: 591
Скачиваний: 2
СОДЕРЖАНИЕ
учителя информатики КГУ «Гимназия №9» г.Караганды
Задача 1 (№ 1) A+B (Сложность: 1%)
Задача 3 (№ 903) Бисер (Сложность: 2%)
Задача 4 (№ 942) Олимпиада (Сложность: 2%)
Задача 5 (№ 195). Эния (Сложность: 3%)
Задача 7 (№ 33) Два бандита ( Сложность: 4%)
Задача 10 (№ 819) Прямоугольный параллелепипед
x=(h*(l+w)*2)/16; нужно учесть, что банка может быть неполной
Задача 14 (№ 780) Футбол (Сложность: 22%)
Выходные данные. В выходной файл OUTPUT.TXT выведите одно число – общее количество забитых мячей.
Задача 15 (№ 900) Три грибника (Сложность: 23%)
Задача 16 (№ 25) Больше-меньше (Сложность: 3%)
Задача 19 (№ 8)Арифметика (Сложность: 5%)
Задача 21 (№ 755) Сбор земляники (Сложность: 6%)
Задача 33 (№ 948) Сроки в книге (Сложность: 13%)
Задача 37 (№ 929) Игральные кубики (Сложность: 15%)
Задача 38 (№ 263) Метро (Сложность: 16%)
Задача 39 (№ 844) Поля (Сложность: 16%)
Задача 40 (№ 294) Болты и гайки (Сложность: 17%)
Выходные данные. В выходной файл выведите одно целое число – размер ущерба.
Задача 41 (№ 606)Треугольник – 3 (Сложность: 17%)
Задача 42 (№ 952) В автобусе (Сложность: 18%)
Задача 43 (№ 952) Кастинг (Сложность: 19%)
1, если в данном тесте требуется определить минимальное количество актеров;
Задача 45 (№ 68) Дом - Школа – Дом (Сложность: 21%)
Задача 49 (№ 692) Бинарные числа (Сложность: 8%)
Задача № 52 (№ 233). Автобусная экскурсия (Сложность: 14%)
Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.
Задача 55 (№ 264) Оттепель(Сложность: 17%)
Задача 56 (№ 949) Фибоначчиева последовательность. (Сл.17%)
Задача 57 (№ 778) Офис (Сложность: 18%)
Задача 60 (№ 947) Карточки – 3 (Сложность: 22%)
Задача 62 (№ 716) Треугольник Максима (Сложность: 25%)
Задача 63 (№ 272) Сумма max и мin (Сложность: 26%)
Задача 66 (№ 149). Разворот (Сложность: 9%)
Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.
Задача 69 (№ 637) NEERC (Сложность: 17%)
Задача 70 (№ 293) Налоги (Сложность: 20%)
Задача 74 (№ 324) Четырехзначный палиндром ( Сл.: 10%)
Задача 80 (№ 43) Нули (Сложность: 16%)
Задача 81 (№ 297) Кругляши (Сложность: 16%)
Задача 83 (№ 895) Крестики-нолики (Сложность: 19%)
Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.
Задача 87 (№ 633) ACM World Finals (Сложность: 20%)
Задача 89 (№ 315) Наименьшая система счисления (Сл.: 26%)
Задача 19 (№ 8)Арифметика (Сложность: 5%)
В прошлом году Вася пошел в школу и научился считать. В этом году он изучил таблицу умножения и теперь умеет перемножать любые числа от 1 до 10 без ошибок. Друг Петя рассказал ему про системы счисления, отличные от десятичной. В частности, про двоичную, восьмеричную и даже шестнадцатеричную. Теперь Вася без труда (но уже с помощью листка и ручки) может перемножать числа от 1 до 10 и в этих системах, используя перевод из нестандартной системы в десятичную и обратно из десятичной. Например, если Васе нужно перемножить числа 101 и 1001 в двоичной системе, то он сначала эти числа переводит в десятичное представление следующим образом:
(101)2=1*22+0*21+1*20=4+0+1=5
(1001)2=1*23+0*22+0*21+1*20=8+0+0+1=9
После чего перемножение чисел 5 и 9 Вася с легкостью производит в десятичной системе счисления в уме и получает число 45. Далее производится перевод из десятичной системы счисления в двоичную. Для этого Вася делит число 45 на 2 (порядок системы счисления), запоминая остатки от деления, до тех пор пока в результате не останется число 0:
Ответ составляется из полученных остатков от деления путем их записи в обратном порядке. Таким образом Вася получает результат: (101)2 * (1001)2 = (101101)2. Но теперь Вася изучает таблицу умножения чисел от 1 до 100 в десятичной системе счисления, а поскольку запомнить такую таблицу очень сложно, то Васе придется очень долго ее зубрить. Составьте для Васи программу, которая поможет ему проверять свои знания.
№ | INPUT.TXT | OUTPUT |
1 | 8 54 432 | YES |
2 | 16 19 777 | NO |
Во входном файле записаны три натуральных числа A, B и C через пробел. Числа A и B <= 102, а C <= 106.
Выходные данные
Эта задача относится к роду тех задач, формулировку которых читать дольше, чем решать саму задачу. В этой задаче нужно просто проверить: равно ли третье число произведению первых двух.
В выходной файл нужно вывести YES в том случае, если A*B=C и вывести NO в противном случае.
# include
using namespace std;
int main(){
int a,b,c,min,max;
cin>>a>>b>>c;
if (a*b==c) cout<<"YES";
else cout<<"NO";
return 0; }
Задача 20 (№ 61) Баскетбол (Сложность: 5%)
Известны результаты каждой из 4х четвертей баскетбольной встречи. Нужно определить победителя матча.
№ | INPUT.TXT | OUTPUT |
1 | 26 17 13 15 19 11 14 16 | 1 |
2 | 14 15 17 18 20 20 15 17 | 2 |
3 | 15 16 18 17 10 12 14 12 | DRAW |
Выходные данные. В выходной файл OUTPUT.TXT выведите номер выигравшей команды, в случае ничьей следует вывести «DRAW».
#include
using namespace std;
int main() {
int a1, b1, a2, b2, a3, b3, a4, b4, z, x;
cin >> a1 >> b1 >> a2 >> b2>>a3>>b3>>a4>>b4;
z =a1+a2+a3+a4;
x =b1+b2+b3+b4;
if (z == x) cout<<"DRAW";
if (z > x) cout<<"1";
if (z < x) cout<<"2";
return 0; }
Задача 21 (№ 755) Сбор земляники (Сложность: 6%)
Маша и Миша собирали землянику. Маше удалось сорвать X ягод, а Мише – Y ягод. Поскольку ягода была очень вкусной, то ребята могли какую то часть ягод съесть. По нашим подсчетам вместе они съели Z ягод. Требуется определить: сколько ягод ребята собрали в результате, при этом следует проверить, не ошиблись ли мы в расчетах, подсчитывая количество съеденных ягод (их не должно было получиться больше, чем сорванных ягод).
Входные данные. Входной файл INPUT.TXT содержит три натуральных числа X, Y и Z, не превышающих 1000. Все числа расположены в первой строке файла и разделены пробелом.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 2 1 | 4 |
2 | 12 13 5 | 20 |
3 | 2 5 9 | Impossible |
#include
using namespace std;
int main() {
int x, y, z;
cin >> x >> y >> z;
if ((x + y) - z >= 0) cout << (x + y) - z; else cout << "Impossible";
return 0; }
Задача 22 (№ 539) Торт (Сложность: 6%)
№ | INPUT | OUTPUT |
1 | 2 | 1 |
2 | 3 | 3 |
Помогите Пете решить эту задачу, определив наименьшее число разрезов торта по заданному числу гостей.
Входные данные
Входной файл содержит натуральное число N – число гостей, включая самого виновника торжества (N <= 1000).
Выходные данные. В выходной файл OUTPUT.TXT выведите минимально возможное число разрезов торта.
#include #include using namespace std; int main(){ int n; cin>>n; if(n==1) cout<<0; else{if (n%2==0){cout< else {cout< return 0; } | Если гостей нет (n=1) – торт не режут. Если гостей четное число, то разрезов n/2. Если гостей нечетное число, то разрезов n |
Задача 23 (№ 754) Три толстяка (Сложность: 7%)
Три толстяка решили поспорить: кто из них самый тяжелый. После взвешивания оказалось, что их масса соответственно M1, M2 и M3 килограмм. Считается, что масса толстяка должна быть не менее 94 и не более 727 килограмм. Помогите определить массу самого тяжелого из них, либо выяснить, что была допущена ошибка при взвешивании.
Входные данные. Входной файл содержит три целых числа M1, M2 и M3. Все числа целые и не превосходят 10 000 по абсолютной величине.
Выходные данные. В выходной файл выведите массу самого тяжелого толстяка в случае корректного взвешивания, либо слово «Error» в противном случае.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 98 106 214 | 214 |
2 | 100 100 100 | 100 |
3 | 93 500 1000 | Error |
#include
using namespace std;
int main () {
int m1, m2, m3, max;
cin>> m1 >> m2>>m3;
if (m1<94 or m1>727) {cout << "Error"; return 0;}
if (m2<94 or m2>727) {cout << "Error"; return 0;}
if (m3<94 or m3>727) {cout << "Error"; return 0;}
if (m1>m2) max=m1; else max=m2;
if (m3>max) max=m3;
cout << max; return 0; }
Задача 24 (№ 907) Мышка (Сложность: 9%)
Однажды компьютерная мышка подумала, что стоит взять про запас еще один коврик. Чтобы никто не заметил запасного коврика, мышка решила его спрятать под свой прямоугольный коврик. Пробравшись ночью на склад, мышка обнаружила там только круглые коврики. Удастся ли мышке спрятать круглый коврик под прямоугольным ковриком?
Входные данные. Входной файл INPUT.TXT содержит три натуральных числа: W, H и R, где W и H - ширина и высота прямоугольного коврика, а R – радиус запасного коврика. Все числа не превосходят значения 109.
Выходные данные. В выходной файл OUTPUT.TXT выведите «YES», если новый коврик можно спрятать под старым, и слово «NO», если этого сделать нельзя.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 4 7 2 | YES |
2 | 4 7 3 | NO |
using namespace std;
int main() {
float w, h, r;
cin >> w >> h >> r;
if (r * 2 <= w and r * 2 <= h) cout << "YES";
else cout << "NO";
return 0; }
Задача 25 (№ 970) От перестановки что-то меняется ...(Сл.: 9%)
Всем известно, что «от перестановки слагаемых сумма не изменяется». Однако, случается и так, что перестановка двух чисел приводит к более интересным последствиям. Пусть, например, заданы три числа: a1, a2, a3. Рассмотрим равенство a1+ a2= a3. Оно может быть неверным (например, если a1= 1, a2= 4, a3= 3), однако может стать верным, если поменять некоторые числа местами (например, если поменять местами a2 и a3, оно обратится в равенство 1 + 3 = 4).
Ваша задача – по заданным трем числам определить: можно ли их переставить так, чтобы сумма первых двух равнялась третьему.
Входные данные. Входной файл INPUT.TXT содержит три целых числа: a1, a2, a3 (−108 ≤ a1, a2, a3 ≤ 108). Выходные данные. В выходной файл OUTPUT.TXT выведите слово «YES», если заданные числа можно переставить так, чтобы сумма первых двух равнялась третьему. В противном случае выведите в выходной файл слово «NO».
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 5 2 | YES |
2 | 2 2 5 | NO |
3 | 2 2 4 | YES |
using namespace std;
int main(){
int a1, a2, a3;
cin>>a1>>a2>>a3;
if (a1+a2==a3 || a1+a3==a2 || a2+a3==a1) cout<<"YES"; else cout<<"NO";
return 0; }
Задача 26 (№ 597) Внеземные гости (Сложность: 10%)
Недавно на поле фермера Джона были обнаружены следы приземления летающих тарелок. Об этом даже писала газета Mew Yorc Courier.
Поле фермера Джона имеет форму круга радиусом r1. По сообщениям журналистов были обнаружены два следа от летающих тарелок, имевшие форму кругов. Один из них имел радиус r2, второй - радиус r3. Также сообщается, что они находились внутри поля фермера Джона и не пересекались (при этом, они, возможно, касались друг друга и/или границы поля). Поскольку журналисты часто склонны преувеличивать масштабы событий, необходимо написать программу, которая будет проверять, могли ли иметь место события, описанные в газете.
Входные данные. Входной файл INPUT.TXT содержит три целых положительных числа - r1, r2, r3 (1 ≤ r1, r2, r3 ≤ 109).
Выходные данные. В выходной файл выведите слово YES, если информация, опубликованная в газете, может соответствовать правде, и слово NO - иначе.
№ | INPUT.TXT | OUTPUT |
1 | 10 10 10 | NO |
2 | 10 3 4 | YES |
using namespace std;
int main (){
int r1, r2, r3;
cin>>r1>>r2>>r3;
if (r2+r3<=r1) cout<<"YES"; else cout<<"NO";
return 0; }
Задача 27 (№ 757) Спирт (Сложность: 10%)
Каждому школьнику из курса органической химии известна формула молекулы этилового спирта – C2H5(OH). Откуда видно, что молекула спирта состоит из двух атомов углерода (C), шести атомов водорода (H) и одного атома кислорода (O).
По заданному количеству атомов каждого из описанных выше элементов требуется определить максимально возможное количество молекул спирта, которые могут образоваться в процессе их соединения.
Входные данные. Первая строка входного файла INPUT.TXT содержит 3 натуральных числа: C, Н и O – количество атомов углерода, водорода и кислорода соответственно. Все числа разделены пробелом и не превосходят 1018.
Выходные данные
В выходной файл OUTPUT.TXT выведите максимально возможное число молекул спирта, которые могут получиться из атомов, представленных во входных данных.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 2 6 1 | 1 |
2 | 10 5 12 | 0 |
3 | 18 35 3 | 3 |
using namespace std;
int main(){
long long int C,H,O, min;
cin>>C>>H>>O;
if(C>=2) min=C/2;
if(H>=6){ if ( (H/6)<=min ) min=H/6;}
if(O>=1){if ( (O/1)<=min ) min=O/1;}
cout<
По заданному номеру месяца в году требуется определить время года.
Входные данные
Входной файл INPUT.TXT содержит натуральное число N (N≤100) – номер месяца.
Выходные данные
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 | Spring |
2 | 15 | Error |
#include
using namespace std;
int main() {
int a;
cin >> a;
if (a == 1 or a == 2 or a == 12) cout << "Winter";
if (a == 3 or a == 4 or a == 5) cout << "Spring";
if (a == 6 or a == 7 or a == 8) cout << "Summer";
if (a == 9 or a == 10 or a == 11) cout << "Autumn";
if (a >12) cout<<"Error";
return 0; }
Задача 29 (№ 685) Золотой песок (Сложность: 10%)
Сотрудники завода по производству золотого песка из воздуха решили поправить свое финансовое положение. Они пробрались на склад завода, где хранился золотой песок трех видов. Один килограмм золотого песка первого вида они смогли бы продать за A1 рублей, второго вида – за A2 рублей, а третьего вида – за A3 рублей. Так получилось, что у сотрудников оказалось с собой только три емкости: первая была рассчитана на B1 килограмм груза, вторая на B2 килограмм, а третья на B3 килограмм. Им надо было заполнить полностью все емкости таким образом, чтобы получить как можно больше денег за весь песок. При заполнении емкостей нельзя смешивать песок разных видов, то есть, в одну емкость помещать более одного вида песка, и заполнять емкости песком так, чтобы один вид песка находился более чем в одной емкости.
Требуется написать программу, которая определяет, за какую сумму предприимчивые сотрудники смогут продать весь песок в случае наилучшего для себя заполнения емкостей песком.
№ | INPUT.TXT | OUTPUT |
1 | 1 2 3 3 2 1 | 14 |
Выходные данные. В единственную строку выходного файла OUTPUT.TXT нужно вывести единственное целое число – сумму в рублях, которую смогут сотрудники заработать в случае наилучшего для себя заполнения емкостей песком.
#include
#include
using namespace std;
int main(){
int a1,a2,a3,b1,b2,b3,x;
cin>>a1>>a2>>a3>>b1>>b2>>b3;
Расставляем данные по возрастанию
if (a2
if (a3
if (a2
if (b2
if (b3
if (b2
cout<
return 0; }
Задача 30 (№ 777) Будильник (Сложность: 12%)
Известный исследователь Чарльз Ф. Мантц, устав от долгого путешествия через джунгли, лег спать в 10 часов вечера, но предварительно он завел будильник на 12 часов следующего дня. Но проспать 14 часов ему не удалось – будильник зазвонил через 2 часа. Исследователь забыл, что на будильнике, имеющем 12-тичасовой циферблат, можно задать время до звонка только менее 12 часов.
Напишите программу, которая определяет, сколько часов успеет проспать исследователь, прежде чем будильник его разбудит.
Входные данные. В единственной строке входного файла INPUT.TXT записаны два целых числа S и T (1 ≤ S, T ≤ 12), разделенные одним пробелом - час, когда исследователь лег спать, и час, на который он установил будильник.
Выходные данные. В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число – через сколько часов зазвонит будильник.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 10 12 | 2 |
#include
using namespace std;
int main() {
int s,t;
cin >> s >> t;
if (s
return 0; }
Задача 31 (№ 854) Кондиционер (Сложность: 12%)
В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.
Кондиционер может работать в следующих четырех режимах:
-
«freeze» — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается. -
«heat» — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается. -
«auto» — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой. -
«fan» — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате.
Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.
Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 10 20 heat | 20 |
2 | 10 20 freeze | 10 |
Выходные данные. Выходной файл OUTPUT.TXT должен содержать одно целое число — температуру, которая установится в комнате через час.
using namespace std;
int main() {
int tRoom, tCond;
string func;
cin >> tRoom >> tCond;
cin >> func;
if (func=="fan") cout << tRoom;
if (func =="auto") cout << tCond;
if (func=="heat") {if (tRoom <= tCond) cout << tCond; else cout << tRoom;}
if (func =="freeze") {if (tRoom >= tCond) cout << tCond; else cout << tRoom;}
return 0; }
Задача 32 (№ 933) Телефон (Сложность: 12%)
Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц – В рублей за минуту, а разговоры сверх установленной нормы оплачиваются из расчета С рублей за минуту. Требуется написать программу, вычисляющую плату за пользование телефоном для разговоров продолжительностью Т минут в месяц.
Входные данные
Входной файл INPUT.TXT содержит натуральные числа A, B, C и T, не превышающие 1000. Числа располагаются в одной строке и разделены пробелами.
Выходные данные. В выходной файл OUTPUT.TXT выведите единственное целое число – месячную плату за пользование телефоном.
#include
№ | INPUT.TXT | OUTPUT.TXT |
1 | 30 2 3 30 | 60 |
2 | 20 1 3 30 | 50 |
using namespace std;
int main() {
int a,b,c,t;
long int s;
cin >> a >> b >> c>>t;
if (t>a) s=a*b+(t-a)*c; else s=b*t;
cout <