Решение задач: Составители

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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


    cout<
    return 0; }



Задача 13 (№ 843) Экзамены (Сложность: 20%)


№

INPUT.TXT

OUTPUT.TXT

1

2 2 1 0

1 1 0

2

10 5 5 5

5 0 0

3

10 5 5 0

0 5 5
В этом году при поступлении в университет абитуриентам требовалось успешно сдать экзамены по математике и физике. К сожалению, с этим испытанием справились не все. Известно, что на экзамены пришло N абитуриентов, из них M – сдали математику, F – сдали физику, а L – не сдали ни одного предмета. Найдите, сколько абитуриентов сдали оба предмета и стали студентами, а также определите, сколько абитуриентов сдали один экзамен: только по математике или только по физике.

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


Входной файл INPUT.TXT содержит четыре целых числа, разделенных пробелами: N (0 < N ≤ 2×109), M, F, L (0 ≤ M, F, L ≤ 2×109).

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


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

a) количество абитуриентов, сдавших оба экзамена;
b) количество абитуриентов, сдавших только математику;
с) количество абитуриентов, сдавших только физику.


#include

using namespace std;

int main() {

long long n,m,f,l,oz,n2;

cin>>n>>m>>f>>l;

n=n-l;

oz=m+f;

n2=oz-n;

cout<
return 0; }



n=n-l –человек сдали 1 или 2 экзамена

oz=m+f – кол-во сданных экзаменов

n2=oz-n – сдали 2 экзамена

m-n2 – сдали только матем.

f-n2 – сдали только физику


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


Вместо того чтобы делать уроки, Вася смотрел футбольный матч и записывал счет, который показывался на табло, после каждого забитого гола. Например, у него могла получиться такая запись: 1:0, 1:1, 1:2, 2:2, 2:3. После этого он сложил все записанные числа: 1+0+1+1+1+2+2+2+2+3=15. По сумме, получившейся у Васи, определите, сколько всего мячей было забито в матче.

№

INPUT.TXT

OUTPUT.TXT

1

15

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

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



#include

using namespace std;

int main() {

int s,n;

cin>>s;

n=(-1+sqrt(1+8*s))/2;

cout<
return 0; }

Вася посчитал сумму арифметической прогрессии

1+2+3+4+5=15, причем an=n

n2+n-2S=0 – решаем квадратное уравнение

D=1+8S

n= (n<0 не удовлетворяет условию)


2 способ



#include

using namespace std;

int main() {

int s,n;

cin>>s;

int g=0;

int sum=0;

while (sum
g++;

sum=sum+g;}

cout<
return 0; }











Находим сумму 1+2+3+4+…., пока она не станет равной сумме, полученной Васей


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


Три грибника Петя, Вася и Коля, возвращаясь из лесу домой, решили устроить привал, а заодно и перекусить. Как это у нас принято, через некоторое время каждый начал хвастаться своими сегодняшними успехами, а потом делиться найденными грибами со своими товарищами. Изначально у каждого из них было некоторое целое количество грибов. Сначала Петя дал Васе и Коле по столько грибов, сколько у них уже было. Коля быстро понял, что так будет не по-братски, и дал Васе и Пете по столько грибов, сколько у них стало. Вася не мог отстать от сотоварищей и тоже дал каждому из друзей по столько грибов, сколько у них к этому моменту имелось. И тут
друзья с удивлением обнаружили, что у всех стало грибов поровну. Известно, что все вместе они собрали N грибов. Сколько грибов было у каждого из них перед привалом?


№

INPUT.TXT

OUTPUT.TXT

1

120

65 20 35
Входные данные

Входной файл INPUT.TXT содержит натуральное число N (N ≤ 30000).

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

В выходной файл OUTPUT.TXT выведите три числа через пробел - первоначальное количество грибов у Пети, Васи и Коли соответственно. Предполагается, что ответ для данного N существует.








Петя

Коля

Вася

Петя

x

x-y-z

2(x-y-z)

4(x-y-z)

Вася

y

2y

4y

4y-2(x-y-z)-(3z-y-x)=-x+7y-z

Коля

z

2z

2z-2y-(x-y-z)=3z-y-x

2(3z-y-x)

Получили систему уравнений:

решая систему, получим

#include

#include

using namespace std;

int main(){

int n,x,y,z;

cin>>n;

x=13*n/24;

y=n/6;

z=7*n/24;

cout<
return 0;

}
0>








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




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


Одна из основных операций с числами – их сравнение. Мы подозреваем, что вы в совершенстве владеете этой операцией и можете сравнивать любые числа, в том числе и целые. В данной задаче необходимо сравнить два целых числа.

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


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

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


Запишите в выходной файл один символ “<”, если A < B, “>”, если A > B и “=”, если A=B.


№

INPUT.TXT

OUTPUT

1

5
7

<

2

-7
-12

>

3

13
13

=
# include

using namespace std;

int main(){

int a,b;

cin>>a>>b;

if (a>b) cout<< ">";

if (a
if (a==b) cout<< "=";

return 0; }


Задача 17(№ 766) Орешки (Сложность: 3%)


Белочка собрала в лесу N шишек c орешками. Белочка очень привередливо выбирала шишки, и брала только те, в которых ровно M орешков. Также известно, что для пропитания зимой ей необходимо не менее K орешков. Определите, хватит ли на зиму орешков белочке.


№

INPUT.TXT

OUTPUT.TXT

1

4 5 20

YES

2

4 5 21

NO

3

3 2 1

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

Входной файл INPUT.TXT содержит три натуральных числа: N, M и K (N, M ≤ 100, K ≤ 10 000).

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

В выходной файл OUTPUT.TXT выведите «YES» если белочке хватит орешков и «NO» в противном случае.



#include

 using namespace std;

 int main() {

    int n, m, k;

    cin >> n >>m >>k;

    if (n*m >= k)

        cout << "YES";

    else cout << "NO";

    return 0; }

Задача 18 (№ 21) Зарплата (Сложность: 4%)


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

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


# include

using namespace std;


№

INPUT.TXT

OUTPUT.TXT

1

100 500 1000

900

2

36 11 20

25
int main(){

int a,b,c,min,max;

cin>>a>>b>>c;

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

else {max=b; min=a;}

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

cout<
return 0; }
Источник: https://tut-files.ru/previewfile/107733