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

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

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

Добавлен: 17.03.2024

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

Скачиваний: 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%)

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

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


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


В шкатулке хранится разноцветный бисер (или бусины). Все бусины имеют одинаковую форму, размер и вес. Бусины могут быть одного из N различных цветов. В шкатулке много бусин каждого цвета.

Требуется определить минимальное число бусин, которые можно не глядя вытащить из шкатулки так, чтобы среди них гарантированно были две бусины одного цвета.



INPUT.TXT

OUTPUT.TXT

1

3

4
Входные данные
Входной файл INPUT.TXT содержит одно натуральное число N - количество цветов бусин (1 ≤ N ≤ 109).

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


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



#include

 using namespace std;

int main(){

int n;

    cin>> n;

    cout<
  return 0; }

Самый неблагоприятный вариант: вытаскиваем N бусин – все они разного цвета. Так как цвета закончились, то на N+1 бусине какой-нибудь цвет повториться.


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


Трое студентов, пятикурсник, третьекурсник и первокурсник, живут в одной комнате общежития и любят участвовать в соревнованиях по программированию по правилам ACM. У каждого из них свой подход к решению задач. Пятикурсник решает все задачи строго по порядку - сначала первую, затем вторую, и так до последней. Третьекурсник решает задачи строго в обратном порядке – сначала последнюю, затем предпоследнюю, и так до первой. А первокурсник сначала решает самую простую задачу, затем – самую простую из оставшихся задач, и так до самой сложной. Сложность задачи определяется временем, необходимым для её решения. Для решения одной и той же задачи наши студенты тратят одинаковое количество времени.

Ваша задача – по описанию соревнований по программированию определить, кто из студентов победит. Напомним, что по правилам ACM побеждает участник, за 300 минут решивший больше всего задач, а при равенстве количества задач – набравший меньше штрафного времени.


Наши студенты – очень сильные программисты, и при решении задач они не делают неправильных попыток. Поэтому за задачу начисляется штраф в размере количества минут от начала соревнования до её посылки на проверку. Если же и количество штрафного времени совпадает – то студент со старшего курса уступает победу студенту с младшего курса.

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




INPUT.TXT

OUTPUT.TXT

1

3
40 30 60

1

2

4
10 20 30 40

1
Входной файл INPUT.TXT содержит натуральное число N (N ≤ 10) – количество задач. Во второй строке записаны N натуральных чисел – количество минут, необходимое для решения каждой задачи. Время решения задачи не превосходит 300 минут.

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

В выходной файл OUTPUT.TXT выведите номер курса студента, одержавшего победу в олимпиаде.

Пояснение к примерам

В первом тесте пятикурсник набрал 240 штрафных минут (40 + 70 + 130), третьекурсник – 280 (60 + 90 + 130), первокурсник - 230 минут (30 + 70 + 130).

Во втором тесте третьекурсник набрал 300 минут, а первокурсник и пятикурсник – 200 минут. Но пятикурсник уступил первокурснику.

# include

using namespace std;

int main()



cout<<1;

return 0; }

Очень длинное условие задачи, много входных данных, а по факту всегда выигрывает первокурсник.




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


Неспокойно сейчас на стапелях шестого дока межгалактического порта планеты Торна. Всего через месяц закончится реконструкция малого броненесущего корвета “Эния”. И снова этому боевому кораблю и его доблестной команде предстоят тяжелые бои за контроль над плутониевыми рудниками Сибелиуса. Работа не прекращается ни на секунду, лазерные сварочные аппараты работают круглые сутки. От непрерывной работы плавятся шарниры роботов-ремонтников. Но задержаться нельзя ни на секунду.

И вот в этой суматохе обнаруживается, что термозащитные панели корвета вновь требуют срочной обработки сульфидом тория. Известно, что на обработку одного квадратного метра панели требуется 1 нанограмм сульфида. Всего необходимо обработать N прямоугольных панелей размером A на B метров. Вам необходимо как можно скорее подсчитать, сколько всего сульфида необходимо на обработку всех панелей “Энии”. И не забудьте, что панели требуют обработки с обеих сторон.

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




INPUT.TXT

OUTPUT.TXT

1

5 2 3

60

2

14 23 5

3220
Во входном файле содержатся 3 целых положительных числа N (N <= 100), A (A <= 100), B (B <= 100)

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

В выходной файл нужно вывести единственное число – вес необходимого для обработки сульфида тория в нанограммах.
# include

using namespace std;

int main(){

int n,a,b;

cin>>n>>a>>b;

cout<
return 0; }


Задача 6 (№ 4) Игра (Сложность: 4%)


В свободное время одноклассники Вася и Петя любят играть в различные логические игры: морской бой, крестики-нолики, шахматы, шашки и многое другое. Ребята уже испробовали и поиграли во всевозможные классические игры подобного рода, включая компьютерные. Однажды им захотелось сыграть во что-нибудь новое, но ничего подходящего найти не удалось. Тогда Петя придумал следующую игру «Угадайка»: Играют двое участников. Первый загадывает любое трехзначное число, такое что первая и последняя цифры отличаются друг от друга более чем на единицу. Далее загадавший число игрок переворачивает загаданное число, меняя первую и последнюю цифры местами, таким образом получая еще одно число. Затем из максимального из полученных двух чисел вычитается минимальное. Задача второго игрока – угадать по первой цифре полученного в результате вычитания числа само это число. Например, если Вася загадал число 487, то перестановкой первой и последней цифры он получит число 784. После чего ему придется вычесть из 784 число 487, в результате чего получится число 297, которое и должен отгадать Петя по указанной первой цифре «2», взятой из этого числа. Петя успевает лучше Васи по математике, поэтому практически всегда выигрывает в играх такого типа. Но в данном случае Петя схитрил и специально придумал такую игру, в которой он не проиграет Васе в любом случае. Дело в том, что придуманная Петей игра имеет выигрышную стратегию, которая заключается в следующем: искомое число всегда является трехзначным и вторая его цифра всегда равна девяти, а для получения значения последней достаточно отнять от девяти первую, т.е. в рассмотренном выше случае последняя цифра равна 9-2=7. Помогите Пете еще упростить процесс отгадывания числа по заданной его первой цифре, написав соответствующую программу.

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


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



INPUT.TXT

OUTPUT.TXT

1

5

594

2

2

297

3

7

792
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести значение полученной Васей разности.
# include

using namespace std;

int main(){

int k;

cin>>k;

cout<1 цифра-заданное число n; 2 цифра=9; 3 цифра=9-n

return 0; }


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


Бандиты Гарри и Ларри отдыхали на природе. Решив пострелять, они выставили на бревно несколько банок из-под пива (не больше 10). Гарри начал простреливать банки по порядку, начиная с самой левой, Ларри — с самой правой. В какой-то момент получилось так, что они одновременно прострелили одну и ту же последнюю банку.

Гарри возмутился и сказал, что Ларри должен ему кучу денег за то, что тот лишил его удовольствия прострелить несколько банок. В ответ Ларри сказал, что Гарри должен ему еще больше денег по тем же причинам. Они стали спорить кто кому сколько должен, но никто из них не помнил сколько банок было в начале, а искать простреленные банки по всей округе было неохота. Каждый из них помнили только, сколько банок прострелил он сам. Определите по этим данным, сколько банок не прострелил Гарри и сколько банок не прострелил Ларри.

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





INPUT.TXT

OUTPUT.TXT

1

4 7

6 3
В единственной строке входного файла INPUT.TXT записано 2 числа — количество банок, простреленных Гарри и Ларри соответственно.

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


В файл OUTPUT.TXT выведите 2 числа — количество банок, не простреленных Гарри и Ларри соответственно.
# include

using namespace std;

int main(){

int a,b;

cin>>a>>b;

cout<
return 0;

}

Задача 8 (№ 773) Гулливер (Сложность: 4%)


Из книги Джонатана Свифта мы знаем, что тот Гулливер посетил страну «Лилипутию», где живут лилипуты, окруженные вещами, животными и заводами небольшого размера. Сначала лилипуты боялись Гулливера, но позже они поняли, что такое соседство приносит им большую выгоду, и они стали помогать ему. Например, лилипуты делали кровать для Гулливера из своих маленьких матрацев, сшитых вместе. Лилипутам были известны размеры Гулливера. Довольно быстро они смогли просчитать количество матрацев, необходимых для шитья большого матраца. Но у них постоянно возникали сложности с их небольшим ростом и стеля постель, они иногда не могли сшить достаточно толстый матрац.




INPUT.TXT

OUTPUT.TXT

1

2 2

8

2

12 4

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

Входной файл INPUT.TXT содержит два целых числа, которые разделены пробелом: K – коэффициент, отражающий во сколько раз Гулливер больше лилипутов, и M – количество слоев матрацев (2 ≤ K, M ≤ 100).

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


Матрац в k раз шире, в k раз длиннее и в m раз толще, т.е. k*k*m.

#include < iostream>

using namespace std;

int main(){

int k,m;

cin>>k>>m;

cout<
return 0; }

Задача 9 (№ 92) Журавлики (Сложность: 7%)


Петя, Катя и Сережа делают из бумаги журавликов. Вместе они сделали S журавликов. Сколько журавликов сделал каждый ребенок, если известно, что Петя и Сережа сделали одинаковое количество журавликов, а Катя сделала в два раза больше журавликов, чем Петя и Сережа вместе?

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




INPUT.TXT

OUTPUT.TXT

1

6

1 4 1

2

24

4 16 4

3

60

10 40 10
В единственной строке входного файла записано одно натуральное число S – общее количество сделанных журавликов (S < 106).

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

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

# include

using namespace std;

int main(){

int s,x;

cin>>s;

x=s/6;

cout<
return 0; }


Решение задачи из уравнения

х+х+4х=S

6x=S

x=s/6 – сделали Петя и Сережа

4*х – сделала Катя



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

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


Прямоугольный параллелепипед - это объемная фигура, у к оторой шесть граней, и каждая из них является прямоугольником. Моделями прямоугольного параллелепипеда служат классная комната, кирпич, спичечная коробка. Длины трех ребер прямоугольного параллелепипеда, имеющих общий конец, называют его измерениями. На приведенном рисунке измерения представлены ребрами AB, BC и BF с общим концом в точке B, а значения измерений равны их длинам a, b и c соответственно.

По заданным измерениям прямоугольного параллелепипеда Вам необходимо определить площадь его поверхности и объем.

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




INPUT.TXT

OUTPUT.TXT

1

1 1 1

6 1

2

2 3 4

52 24
Единственная строка входного файла INPUT.TXT содержит разделенные пробелом три натуральных числа A, B и С – измерения параллелепипеда, каждое из измерений не превышает 106.

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

В выходной файл OUTPUT.TXT выведите через пробел два целых числа: площадь поверхности и объем заданного параллелепипеда.

#include

using namespace std;

long long a, b, c;

int main() {

    cin >> a >> b >> c;

    cout << 2*(a*b + b*c + a*c) << " " << a*b*c;

    return 0; }

Задача 11 (№ 756) Рыболовная сеть (Сложность: 10%)





INPUT.TXT

OUTPUT.TXT

1

2 2

1

2

2 3

2
Б раконьер Петрович использует распространенный незаконный способ рыбалки с использованием рыболовной сети. Но проблема в том, что крупная рыба часто рвет сеть и приходится ее восстанавливать. Однажды Петрович задумался: какое максимальное количество повреждений может быть в рыболовной сети, таких, что сеть не будет разорвана на части? Вам предстоит помочь ему в вычислениях. Сеть имеет прямоугольную форму размером M×N узлов, все смежные узлы соединены леской. Под разрывом будем понимать только единичный обрыв лески между двумя смежными узлами сети. Например, если сеть имеет размер 2х2, то внешний вид сети будет напоминать квадрат, где допустим только один разрыв в одном из четырех возможных соединений, т.к. любые 2 разрыва приведут к разделению сети на 2 части.

Входные данные. Входной файл INPUT.TXT содержит два целых числа M и N – размеры рыболовной сети (1 ≤ M, N ≤ 10 000).

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

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


#include

using namespace std;

int main(){

    long long n, m;

    cin>>n>>m;

    cout<<(n-1)*(m-1);

    return 0; }



Один ряд сети из N узлов может иметь N-1 разрыв. Количество рядов M-1



Задача 12 (№ 697) Ремонт. (Сложность: 11%)


Ваш любимый дядя – директор фирмы, которая делает евроремонты в офисах. В связи с финансово-экономическим кризисом, дядюшка решил оптимизировать свое предприятие. Давно ходят слухи, что бригадир в дядюшкиной фирме покупает лишнее количество стройматериалов, а остатки использует для отделки своей новой дачи. Ваш дядя заинтересовался, сколько в действительности банок краски необходимо для покраски стены в офисе длиной L метров, шириной – W и высотой – H, если одной банки хватает на 16м2, а размерами дверей и окон можно пренебречь? Заказов много, поэтому дядя попросил написать программу, которая будет все это считать.

Входные данные. Входной файл содержит три натуральных числа L, W, H – длину, ширину и высоту офиса в метрах, каждое из которых не превышает 1000.

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



INPUT

OUTPUT

1

8 8 2

4

2

1 1 3

1


#include

#include

using namespace std;

int main (){

float l, w, h, x;

    cin>>l>>w>>h;