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

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



№

INPUT.TXT

OUTPUT.TXT

1

2

5 12

2

36

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

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

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



# include

#include

using namespace std;

int main (){

long long n, x,k;

 cin>>n;

x=n%6;

if (x==0) k=0; else  k=7-x;

    cout<
    return 0; }

Максимальное количество очков: если первому игроку очень не везет и у него всегда выпадает «1», то второй игрок наберет n*6 очков.


Минимальное количество очков: у первого игрока всегда выпадает «6», тогда второй игрок набирает n/6 очков. Исключение – последний бросок 6 очкам, тогда второй игрок получает 6-х очков.


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


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

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


№

INPUT.TXT

OUTPUT

1

100 5 6

0

2

10 1 9

1
Во входном файле INPUT.TXT заданы три числа: сначала N – общее количество станций кольцевой линии, а затем i и j – номера станции, на которой Витя садится, и станции, на которой он должен выйти. Станции пронумерованы подряд натуральными числами 1, 2, 3, …, N (1-я станция – соседняя с N-й), N не превосходит 100. Числа i и j не совпадают. Все числа разделены пробелом.


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

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


#include

using namespace std;

int main(){

int n,i,j,x,S1,S2;

cin>>n>>i>>j;

if (i>j) {x=i; i=j; j=x;}

S1=j-i-1;

S2=((i-1)+(n-j));

if (S1
else cout<
return 0; }


Возможны 2 случая i>j и j>i.

Если i>j, то меняем местами i и j.






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


Геннадий учится в сельской школе и мечтает стать агрономом. На уроке геометрии Геннадий познакомился с новой фигурой – прямоугольником. Освоив вычисление площади прямоугольника, Гена подумал о том, что квадратные поля гораздо удобнее, нежели прямоугольные. Поразмыслив еще немного, Гена столкнулся с интересной задачей: существует ли такое квадратное поле, у которого площадь в точности равна площади заданного поля прямоугольной формы, чтобы при этом длины сторон обеих полей были бы целыми числами?

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

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


В выходной файл OUTPUT.TXT выведите либо одно целое число c – длину стороны квадрата, либо 0, если квадрата с целочисленной длиной стороны не существует.




№

INPUT.TXT

OUTPUT.TXT

1

1 4

2

2

2 8

4

3

15 42

0
#include

using namespace std;

int main() {

    long long a,b,c,s;

    cin>>a>>b;

    c=a*b;

    s=sqrt(c);

    if(s*s==c)cout<
    return 0; }
1   ...   12   13   14   15   16   17   18   19   ...   38


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


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

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



№

INPUT.TXT

OUTPUT

1

1000 10 100
1200 20 90

37000

2

5000 15 23
4000 17 22

53600
Во входном файле описано текущее положение на складе. В первой строке через пробел записаны три целых числа: k1, l1, m1 – начальное число болтов (100<=k1<=30000, k1 кратно 100), процент потерянных деталей (0<=l1<=100) и стоимость одного болта (1<=m1<=100) соответственно. Во второй строке через пробел записаны также три целых числа: k2, l2, m2 – начальное число гаек (100<=k2<=30000, k2 кратно 100), процент потерянных деталей (0<=l2<=100) и стоимость одной гайки (1<=m2<=100) соответственно.

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



#include

using namespace std;

int main() {

int b1,b2,b3,b4,g1,g2,g3,g4,p,y;

cin >> b1>>b2>>b3;

cin >> g1>>g2>>g3;

b4=b1*(100-b2) / 100;

g4=g1*(100-g2) / 100;

if (b4
y=(b1-p)*b3+(g1-p)*g3;

cout <
return 0; }


сколько болтов осталось

сколько гаек осталось

сколько пар (болт/гайка) можно собрать убыток= потерянные и лишние болты * цену +

+потерянные и лишние гайки*цену



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



№

INPUT

OUTPUT

1

1 2 3

YES

2

1 1 5

NO
Даны длины трех отрезков. Требуется проверить: могут ли они являться сторонами треугольника.

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

Входной файл содержит 3 натуральных числа X Y Z – длины заданных отрезков. Длины отрезков записаны в одной строке через пробел и не превышают 1000.

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

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

# include

using namespace std;

int main(){

int a,b,c,min,max;

cin>>a>>b>>c;

if (a
return 0; }


треугольник существует, если длина любой стороны меньше суммы двух других сторон.




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


Цена проезда в автобусах нашего города — один рубль. Однако, не все так просто — каждый взрослый пассажир имеет право провезти бесплатно не более одного ребенка. Это значит, что взрослый пассажир, который провозит с собой k (k > 0) детей, платит всего k рублей: за один билет для себя и за (k - 1) билетов для своих детей. Также взрослый может ехать без детей, в этом случае он платит всего один рубль. Известно, что дети не могут проезжать в автобусе без сопровождения взрослых.


№

INPUT.TXT

OUTPUT.TXT

1

1 2

2 2

2

0 5

Impossible

3

2 2

2 3

4

20 0

20 20

5

0 0

0 0
Помогите посчитать минимальную и максимальную стоимость проезда в рублях, которую могли заплатить пассажиры автобуса.
Источник: https://tut-files.ru/previewfile/107733