ВУЗ: Не указан

Категория: Решение задач

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 328

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Составители:

Ильина Е.А,

Волынская О.С,

учителя информатики КГУ «Гимназия №9» г.Караганды

Линейные алгоритмы

Задача 1 (№ 1) A+B (Сложность: 1%)

Входные данные. В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.

Выходные данные. В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.

Задача 3 (№ 903) Бисер (Сложность: 2%)

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

Задача 4 (№ 942) Олимпиада (Сложность: 2%)

Задача 5 (№ 195). Эния (Сложность: 3%)

Задача 7 (№ 33) Два бандита ( Сложность: 4%)

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

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

Задача 10 (№ 819) Прямоугольный параллелепипед

(Сложность: 10%)

     x=(h*(l+w)*2)/16; нужно учесть, что банка может быть неполной

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

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

Задача 14 (№ 780) Футбол (Сложность: 22%)

Выходные данные. В выходной файл OUTPUT.TXT выведите одно число – общее количество забитых мячей.

2 способ

Задача 15 (№ 900) Три грибника (Сложность: 23%)

Разветвляющиеся алгоритмы

Задача 16 (№ 25) Больше-меньше (Сложность: 3%)

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

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

Задача 19 (№ 8)Арифметика (Сложность: 5%)

Задача 21 (№ 755) Сбор земляники (Сложность: 6%)

Выходные данные. В выходной файл выведите слово YES, если информация, опубликованная в газете, может соответствовать правде, и слово NO - иначе.

Выходные данные. В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число – через сколько часов зазвонит будильник.

Задача 33 (№ 948) Сроки в книге (Сложность: 13%)

Выходные данные. В выходной файл OUTPUT.TXT выведите одно целое число — минимальное количество значков, которое требуется подготовить.

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

Задача 37 (№ 929) Игральные кубики (Сложность: 15%)

Входные данные. Входной файл INPUT.TXT содержит одно натуральное число n — количество очков, которые получил первый игрок (n ≤ 1010).

Задача 38 (№ 263) Метро (Сложность: 16%)

Задача 39 (№ 844) Поля (Сложность: 16%)

Входные данные. Входной файл INPUT.TXT содержит целые числа a и b – длины сторон прямоугольника (1 < = a*b ≤ 1014).

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

Задача 40 (№ 294) Болты и гайки (Сложность: 17%)

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

Выходные данные. В выходной файл выведите одно целое число – размер ущерба.

Задача 41 (№ 606)Треугольник – 3 (Сложность: 17%)

Задача 42 (№ 952) В автобусе (Сложность: 18%)

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

Задача 43 (№ 952) Кастинг (Сложность: 19%)

Требуется написать программу, которая по заданным числам n, a, b и с определяет минимальное или максимальное количество актеров, с которыми режиссер должен переговорить.

1, если в данном тесте требуется определить минимальное количество актеров;

Вторая строка входного файла содержит разделенные пробелами четыре целых числа: n, a, b, с (1 ≤ n ≤ 10 000, 0 ≤ a ≤ n, 0 ≤ b ≤ n, 0 ≤ c ≤ n).

Задача 45 (№ 68) Дом - Школа – Дом (Сложность: 21%)

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

Задача 49 (№ 692) Бинарные числа (Сложность: 8%)

Задача № 52 (№ 233). Автобусная экскурсия (Сложность: 14%)

Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.

Задача 55 (№ 264) Оттепель(Сложность: 17%)

Задача 56 (№ 949) Фибоначчиева последовательность. (Сл.17%)

Задача 57 (№ 778) Офис (Сложность: 18%)

Задача 60 (№ 947) Карточки – 3 (Сложность: 22%)

Входные данные. Входной файл INPUT.TXT содержит единственное положительное число X - длина нависающей части. Число X задано с двумя знаками после запятой и 0.01 ≤ x < 10.00.

Задача 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%)

Задача 90 (№ 277) Школьная алгебра (Сложность: 27%)

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

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

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


Входной файл INPUT.TXT содержит два целых числа n и m (0 ≤ n, m ≤ 105) — количество взрослых и количество детей в автобусе, соответственно.
Выходные данные. В выходной файл OUTPUT.TXT выведите через пробел два числа — минимальную и максимальную возможную стоимость проезда, если поездка возможна, в противном случае следует вывести «Impossible» (без кавычек).



#include

using namespace std;

int main() {

long v,d,d1;

cin>>v>>d;

if (v==0 and d!=0) {cout<<"Impossible"; return 0;}

if (d==0)

{cout<
d1=d-v;

if (d1<=0) d1=0;
cout<
return 0;

В этой задаче много подводных камней, чтобы понять их добавим примеры 4,5.


Дети не могут ехать без взрослых
Едут только взрослые.
Сколько детей (мах) могут провести взрослые бесплатно? (v) Сколько детей при этом осталось? (d1=d-v) – не может быть<0

Мин.стоимость=взрослые+ d1.

Мах стоимость=взрослые+дети-1 (1 взрослый везет всех детей)



Задача 43 (№ 952) Кастинг (Сложность: 19%)

В театре работает n актеров. Известно, что среди них a – высоких, b – голубоглазых и с – блондинов. Для главной роли в новом спектакле режиссеру требуется только один высокий голубоглазый блондин. Чтобы спланировать свое время для беседы с каждым таким артистом из труппы театра, режиссеру необходимо узнать, какое максимальное или какое минимальное количество артистов из работающих в театре подходит для этой роли.

Требуется написать программу, которая по заданным числам n, a, b и с определяет минимальное или максимальное количество актеров, с которыми режиссер должен переговорить.

Входные данные. Первая строка входного файла INPUT.TXT содержит одно число, которое задает: минимальное или максимальное количество актеров необходимо найти. Это число может принимать следующие значения:

1, если в данном тесте требуется определить минимальное количество актеров;

INPUT.TXT

OUTPUT.TXT

1

2
5 3 4 5

3

2

1
5 3 4 5

2


2, если в данном тесте требуется определить максимальное количество актеров.

Вторая строка входного файла содержит разделенные пробелами четыре целых числа: n, a, b, с (1 ≤ n ≤ 10 000, 0 ≤ a ≤ n, 0 ≤ b ≤ n, 0 ≤ c ≤ n).

Выходные данные. В выходной файл OUTPUT.TXT выведите одно число – минимальное или максимальное (в зависимости от входных данных) количество актеров, которые могут претендовать на главную роль в новом спектакле.

#include

#include

using namespace std;

int main (){

int n,a,b,c,k,f,e,max,min,sr;

cin>>k;

cin>>n>>a>>b>>c;

if (a>b) {max=a; min=b;}

else {max=b; min=a;}
sr=c;

if (c>max) {f= max; max=c; sr=f;}

if (c
if (k==2) cout<
else {

e=n-max;

min=min-e;

sr=sr-e;

f= min-(max-sr);

if (min<=0) f=0;

cout<
return 0;}


Расставим данные a, b, с по возрастанию: min, sr, max

Если в тесте требуется определить максимальное количество актеров (k==2), то выводим min (столько актеров обладают всеми тремя свойствами)
Пример: актеров-7, высоких -6(max), голубоглазых -5 (sr), блондинов -4 (min).

Рассмотрим «худший вариант»:

А

А

А

А

А

А

А

В

В

В

В

В

В










Г

Г

Г

Г

Г

Б

Б

Б










Б

  1. находим e=n-max –количество актеров, не обладающих мах свойством

  2. предполагаем, что эти актеры обладают всеми остальными свойствами, значит

min=min-e; sr=sr-e

  1. находим max-sr –количество актеров, не обладающих средним свойством

  2. предполагаем, что эти актеры обладают минимальным свойством, значит

f= min-(max-sr);

  1. Если получим min<=0, то ответ =0


Задача 44 (№ 511) Очередь (Сложность: 20%)

Студент Василий живет в общежитии. Отделение банка, в котором он производит оплату за проживание, имеет всего две кассы, поэтому почти всегда длинная очередь к ним. Первая касса открывается в 8.00, вторая – в 8.05. Последний клиент будет принят в 20.00. Очередь единая, и очередной клиент обслуживается, как только освобождается одна из касс. На обслуживание одного клиента уходит ровно 10 минут. Василий приходит ровно в 8.00 и видит, сколько человек стоит перед ним. Требуется определить, сколько времени ему придется простоять в очереди, и вообще обслужат ли его сегодня.



INPUT.TXT

OUTPUT.TXT

1

1

0 0

2

20

1 35

3

235

NO
Входные данные. Входной файл содержит единственное натурально число K – номер Василия в очереди (K < 250). Выходные данные. В выходной файл выводится строка «NO», если Василий сегодня заплатить уже не успеет, и время его ожидания (в формате «X Y», где X – количество целых часов, которые простоит в очереди Василий, и Y – количество минут), если все же успеет заплатить.



#include

using namespace std;

int main() {

int k,x,y,q;

cin>>k;

if (k>145) cout<<"NO"; else{

q=k*5-5;

x=q/60;

y=q% 60;

cout<
return 0; }



На обслуживание 1 человека уходит 5 минут. В день обслуживается 145 человек (60/5*12=144 и еще один человек обслуживается в 20.00)




время на обслуживание очереди до Василия в мин. переводим это время в часы

и минуты



Задача 45 (№ 68) Дом - Школа – Дом (Сложность: 21%)





INPUT

OUTPUT

1

Home
1

Yes

2

School
2

No
Мальчик Вася каждый день ездит на метро. Утром он едет в школу, а вечером того же дня, обратно из школы, домой. Для того, чтобы немного сэкономить, он покупает электронную смарт-карту на X поездок. Когда он хочет зайти в метро, он прикладывает карту к турникету. Если на карте осталось ненулевое количество поездок, то турникет пропускает Васю и списывает с карты одну поездку. Если же на карте не осталось поездок, то турникет не пропускает Васю, и он (Вася) вынужден купить на этой же станции новую карту на X поездок и вновь пройти через турникет. Вася заметил, что в связи с тем, что утром метро переполнено, покупать новую карту утром накладно по времени, и он может опоздать в школу. В связи с этим он хочет понять: будет ли такой день, что с утра, поехав в школу, окажется, что у него на карточке ноль поездок. Вася больше никуда на метро не ездит и поэтому заходит в метро только на станции около дома и на станции около школы.

Входные данные. Во входном файле INPUT.TXT содержится ровно 2 строки. В первой содержится слово «School» или «Home» в зависимости от того, где первый раз Вася купил карточку на X поездок. Во второй строке содержится натуральное число X, 1 ≤ X ≤ 1000.

Выходные данные.
В выходной файл OUTPUT.TXT следует вывести «Yes», если будет такой день, что утром у Васи на карточке окажется ноль поездок и «No» в противном случае.





#include

using namespace std;

int main(){

    int a;

    string p;

    cin>>p>>a;

    if (p=="Home" || p=="School" & a%2!=0) {cout<<"Yes";}

    else {cout<<"No";}

    return 0; }


Проверка на нечетность:

a%2!=0 или a%2+0


Задача 46 (№ 499) Турист (Сложность: 22%)

Гена собирается на туристический слет учеников своей школы. В своем классе он был назначен ответственным за палатки. У себя дома он нашел 3 палатки: первая из них весит a1 килограмм и вмещает b1 человек, вторая весит a2 килограмм и вмещает b2 человек, третья весит a3 килограмм и вмещает b3 человек.




INPUT.TXT

OUTPUT.TXT

1

10 10
5 5 6 6 4 5

YES

2

10 10
5 5 6 6 7 7

NO
В классе Гены K человек. Выясните, может ли он выбрать палатки так, чтобы в них все могли поместиться. При этом учитывайте, что выбранные палатки должны суммарно весить не более W килограмм.
Входные данные. Первая строка входного файла содержит два целых числа: K и W (1 <= K <= 15, 1 <= W <= 30). Вторая строка содержит шесть целых чисел: a1, b1, a2, b2, a3, b3 (1 <= a1, a2, a3 <= 10, 1 <= b1, b2, b3 <= 15).