Добавлен: 17.03.2024
Просмотров: 608
Скачиваний: 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%)
Задача 57 (№ 778) Офис (Сложность: 18%)
Летом Вася очень любил смотреть в окно. Напротив его дома расположился офис некоторой строительной фирмы. В течение всего месяца Вася наблюдал за его сотрудниками. Про каждый из 31 дня месяца он знает, сколько сотрудников пришло на работу. Ему также известно, что каждый из сотрудников берет ровно по 4 выходных в месяц.
Теперь он ломает голову над загадкой – сколько всего сотрудников работает в этом офисе. Напишите программу, которая ответит Васе на этот вопрос.
Входные данные. В единственной строке входного файла INPUT.TXT записано 31 целое неотрицательное число. Эти числа описывают количество сотрудников, пришедших в офис в соответствующие дни месяца. Гарантируется, что входные данные корректны.
Выходные данные. В единственную строку выходного файла OUTPUT.TXT нужно вывести единственное число – общее количество сотрудников офиса. Гарантируется, что ответ не превышает 100.
#include
№ | INPUT.TXT | OUTPUT.TXT |
1 | 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0 0 0 0 | 10 |
int main() {
int a, sum;
for(int i=0;i<31;i++){
cin>>a;
sum+=a; }
cout<
return 0; }
Задача 58 (№ 694) Лентяй.(Сложность: 21%)
Студент Валера являет собой классический пример лентяя. На занятия он практически не ходит, и только в конце семестра появляется в университете и сдает ”хвосты”. Его заветная мечта: найти такой день, когда можно будет сдать сразу все долги. У него есть расписание работы преподавателей, из которого точно известно, с какого и по какой день месяца каждый преподаватель ежедневно будет доступен.
Помогите Валере написать программу, которая по расписанию будет определять, сможет ли Валера сдать все долги за один день или нет.
Входные данные
В первой строке входного файла INPUT.TXT содержится натуральное число N – количество предметов, которые нужно сдать Валере (N <=100). Далее идет N строк, каждая из которых состоит из двух чисел A и B, задающих отрезок работы очередного преподавателя (1 <= A <= B <= 31).
Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если возможно встретить всех преподавателей за один день, или «NO», если это сделать невозможно.
№ | INPUT | OUTPUT |
1 | 1 1 2 | YES |
2 | 2 1 2 3 4 | NO |
3 | 3 1 8 3 5 4 9 | YES |
using namespace std;
int main(){
int n,a,b,i,max,min;
cin>>n;
max=0;
min=35;
for (i = 1; i<=n; i++){
cin>>a>>b;
if (a>max) max=a;
if (b
}
if (max<=min) cout<<"YES";
else cout<<"NO";
return 0; }
Задача 59 (№ 888) Карусель (Сложность: 22%)
Карусель – одна из популярных форм проведения командных соревнований по решению задач. Наибольшую известность в использовании данной модели в России получил ресурс «Интернет-карусели», расположенный в сети Интернет по адресу http://karusel.desc.ru.
Всем командам, участвующим в карусели, предлагаются в строгом порядке одни и те же задачи, которые необходимо решить в установленное время. Система подсчета баллов такова, что доминирующим фактором является не количество решенных задач, а длины последовательностей правильных решений.
Начисление баллов происходит согласно следующей схеме:
-
первая задача стоит 3 балла; -
если к задаче дан верный ответ, то команда получает ее стоимость, а следующая задача будет стоить на 1 балл больше; -
если на задачу дан неверный ответ, то команда получает за решение 0 баллов, а следующая задача будет стоить на 3 балла меньше, но не менее 3 баллов.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 1 1 1 | 12 |
2 | 9 1 0 1 1 1 1 0 1 1 | 30 |
Входные данные. Первая строка входного файла INPUT.TXT содержит натуральное число N – количество задач в карусели (N ≤ 105). Во второй строке расположены N цифр 0 или 1, разделенные пробелом; i-я цифра соответствует корректности ответа команды на i-ю задачу (0 – неверный ответ, 1 – верный ответ).
Выходные данные. В выходной файл OUTPUT.TXT выведите целое число – количество набранных баллов.
#include using namespace std; int main() { unsigned long long n,c,b=0,t=3; cin>>n; for(int i=0;i cin>>c; if(c==1){b+=t; t++; } if(c==0) { if(t-3>=3) {t-=3;} else t=3; } } cout< return 0; } | Пояснение ко второму тесту:
3+3+4+5+6+4+5=30 |
Задача 60 (№ 947) Карточки – 3 (Сложность: 22%)
Студент-первокурсник Антон никак не может понять странную формулу
1/2 + 1/3 + 1/4 + ... + 1/n + ... → бесконечность
Хорошо, что у Антона есть друг Васька, который отлично знает математику. Вот и придумал Васька, как Антошке объяснить эту самую бесконечность. Взял колоду карт и стал раскладывать карты на столе. Если есть одна карта, она нависает над столом на 1/2 длины карты. Если есть две карты, то верхняя нависает над нижней на 1/2 длины карты, а нижняя - нависает над столом на 1/3 длины. В итоге получается нависание 1/2+1/3=5/6. А если у нас есть N карт, то длина нависающей части уже 1/2+1/3+1/4+...+1/N. И стал Васька с Антоном в такую игру играть: Антон называет какое-нибудь число, а Вася называет минимальное количество карт, которое нужно положить, чтобы длина нависающей части была бы не меньше этого числа.
Напишите программу, которая помогает Васе каждый раз давать правильный ответ.
Входные данные. Входной файл INPUT.TXT содержит единственное положительное число X - длина нависающей части. Число X задано с двумя знаками после запятой и 0.01 ≤ x < 10.00.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 1.00 | 3 card(s) |
2 | 3.71 | 61 card(s) |
3 | 0.04 | 1 card(s) |
4 | 5.19 | 273 card(s) |
#include
using namespace std;
int main(){
double n,s,i;
cin>>n ;
s=0.5; i=2;
while (s
i++;
s+=(1/i); }
cout<
return 0; }
Задача 61 (№ 760) Транспорт (Сложность: 24%)
Все автовладельцы рано или поздно встречаются с инспекторами ГИБДД. Ваша задача состоит в том, чтобы рассчитать минимальное время прохождения автомобилем прямого участка дороги, на котором стоят инспекторы. Известно, что на данном участке инспекторы останавливают все проезжающие мимо автомобили. Примем следующие допущения: автомобили являются материальными точками, которые могут мгновенно останавливаться или набирать максимальную скорость. Автомобиль начинает свой путь в точке 0 и заканчивает его в точке L.
Входные данные
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 60 45 0 5 25 5 40 5 | 60.00 |
2 | 2 78 150 2 10 78 1 | 126.38 |
Выходные данные
В выходной файл OUTPUT.TXT выведите время преодоления участка дороги автомобилем в минутах с точностью до двух знаков после запятой (вещественное число с ровно двумя цифрами после запятой).
#include using namespace std; int main() { int n, x ; float v, l, t, c; cin >> n >> v >> l; c = 0; for (int i = 0; i < n; i++) { cin >> x>>t; c=c+t; } t=(l / v) * 60 + c; printf("%.2f", t); return 0; } | Условие задачи содержит лишние данные (расстояние от точки 0 до инспектора). Достаточно посчитать время задержки машины инспекторами и прибавить время прохождения всего участка в минутах t=(l / v) * 60. printf("%.2f", t); - вывод вещественного числа с двумя знаками после запятой. |
Задача 62 (№ 716) Треугольник Максима (Сложность: 25%)
С детства Максим был неплохим музыкантом и мастером на все руки. Недавно он самостоятельно сделал несложный перкуссионный музыкальный инструмент – треугольник. Ему нужно узнать, какова частота звука, издаваемого его инструментом.
У Максима есть профессиональный музыкальный тюнер, с помощью которого можно проигрывать ноту с заданной частотой. Максим действует следующим образом: он включает на тюнере ноты с разными частотами и для каждой ноты на слух определяет, ближе или дальше она к издаваемому треугольником звуку, чем предыдущая нота. Поскольку слух у Максима абсолютный, он определяет это всегда абсолютно верно.
Вам Максим показал запись, в которой приведена последовательность частот, выставляемых им на тюнере, и про каждую ноту, начиная со второй, записано – ближе или дальше она к звуку треугольника, чем предыдущая нота. Заранее известно, что частота звучания треугольника Максима составляет не менее 30 герц и не более 4000 герц.
Требуется написать программу, которая определяет, в каком интервале может находиться частота звучания треугольника.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 440.0 220.0 closer 300.0 further | 30.0 260.0 |
2 | 4 554.0 880.0 further 440.0 closer 622.0 closer | 531.0 660.0 |
Входные данные. Первая строка входного файла INPUT.TXT содержит целое число n – количество нот, которые воспроизводил Максим с помощью тюнера (2 ≤ n ≤ 1000). Последующие n строк содержат записи Максима, причем каждая строка содержит две компоненты: вещественное число fi – частоту, выставленную на тюнере, в герцах (30 ≤ fi ≤ 4000), и слово «closer» или слово «further» для каждой частоты, кроме первой. Частоты fi заданы с точностью, не превышающей 10 цифр после запятой.
Слово «closer» означает, что частота данной ноты ближе к частоте звучания треугольника, чем частота предыдущей ноты, что формально описывается соотношением: |fi – fтреуг.| < |fi-1 – fтреуг.| Слово «further» означает, что частота данной ноты дальше, чем предыдущая. Если оказалось, что очередная нота так же близка к звуку треугольника, как и предыдущая нота, то Максим мог записать любое из двух указанных выше слов. Гарантируется, что результаты, полученные Максимом, непротиворечивы.
Выходные данные. В выходной файл OUTPUT.TXT необходимо вывести через пробел два вещественных числа – наименьшее и наибольшее возможное значение частоты звучания треугольника, изготовленного Максимом. Числа следует выводить с точностью, не худшей 10-6.
# include #include #include #include using namespace std; int main(){ int n; string word; double prev,cur,curMin, curMax; double totalMin=30; double totalMax=4000; cin>>n; cin>>prev; for (int i=1; i cin>>cur>>word; if ((cur>prev && word=="closer") || (cur {curMin=(cur+prev)/2; curMax=4000;} else if ((cur prev&&word=="further")){ curMin=30; curMax=(cur+prev)/2;} else{curMin=30; curMax=4000;} totalMin=max(totalMin,curMin); totalMax=min(totalMax,curMax); prev=cur;} printf ("%.7f %.7f", totalMin,totalMax); return 0; } | См. подробный разбор https://www.youtube.com/watch?v= OLNkFH6GLu8 prev – предыдущая точка cur – текущая точка mid=(cur+prev)/2 – середина между ними closer: от mid в сторону cur. further: от mid в сторону prev. cur>prev, closer: допустимый интервал [mid,4000] cur<prev, further: допустимый интервал [mid,4000] cur<prev, closer: допустимый интервал [30,mid] cur>prev, further: допустимый интервал [30,mid] Начальный интервал [30,4000]. Для каждой пары получили интервал. Нужно получить пересечение интервалов. [max(min1,min2), min(max1,max2)] Библиотека Текущая точка становится предыдущей |
Задача 63 (№ 272) Сумма max и мin (Сложность: 26%)
Задана последовательность целых чисел. Числа нумеруются по порядку следования, начиная с единицы. Требуется написать программу, которая найдет сумму максимума из чисел с четными номерами и минимума из чисел с нечетными номерами – max{a2, a4, …}+min{a1, a3, …}.
Входные данные
Входной текстовый файл содержит в единственной строке последовательность от 2 до 2*105 целых чисел, которые по модулю не превышают 10000.
Выходные данные
№ | INPUT.TXT | OUTPUT.TXT |
1 | 1 2 | 3 |
2 | 1 -2 3 -4 5 | -1 |