Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет acmp.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
13 Мб
Скачать
☆

Железная дорога

При строительстве новой железной дороги возникли проблемы. Дорога пролегает по холмистой местности, однако сами пути должны идти строго горизонтально. Поэтому руководство строительной компании приняло решение выровнять поверхность земли на этом участке. Главная проблема состоит в том, что привозить или вывозить землю на стройку стоит 10000$ за кубический метр. Поскольку бюджет железной дороги невелик, этого нельзя себе позволить.

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

Через каждый метр от начала участка была измерена высота над уровнем моря. Напишите программу, которая по данным измерений рассчитывает искомую высоту.

#include <iostream>

#include <iomanip>

using namespace std;

main()

{

int n,i;

double sum=0,a[30000];

cin>>n;

for(i=0;i<n;i++)

cin>>a[i];

for(i=1;i<n;i++)

{

sum+=(a[i-1]+a[i])/2;

}

cout<<fixed<<setprecision(10)<<sum/(n-1);

return 0;

}

Алгоритм решения:

Вводим n – кол-во точек. Каждый участок между двумя точками – это трапеция, площадь которой находится как полусумма оснований, умноженная на высоту. Основания – высоты двух соседних точек. А высоты всех трапеций равны единице, т.е. расстоянию между точками. Мы складываем площади всех трапеций и делим на их кол-во. Выводим полученное число.

Шахматный конь

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

Вы, наверное, тоже знаете, что конь в шахматах всегда перемещается либо на две клетки по горизонтали и на одну по вертикали, либо на одну по горизонтали и на две по вертикали. Вертикали обозначаются маленькими латинскими буквами от a до h, а горизонтали - цифрами от 1 до 8. Любая клетка на шахматной доске обозначается буквой соответствующей вертикали и цифрой соответствующей горизонтали, например, c6 или e2.

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

Сбор черники

В фермерском хозяйстве в Карелии выращивают чернику. Она растет на круглой грядке, причем кусты высажены только по окружности. Таким образом, у каждого куста есть ровно два соседних. Всего на грядке растет N кустов.

Эти кусты обладают разной урожайностью, поэтому ко времени сбора на них выросло различное число ягод – на i-ом кусте выросло ai ягод.

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

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

#include <iostream>

using namespace std;

int main()

{

int max,i,k=0,n;

unsigned int a[1001];

cin>>n;

for(i=1;i<=n;i++)

cin>>a[i];

a[n+1]=a[1];

a[n+2]=a[2];

max=a[1]+a[2]+a[3];

for(i=2;i<n+2;i++)

{k=a[i-1]+a[i]+a[i+1];

if((k)>max) max=k;

}

cout<<max;

}

Алгоритм решения:

Вводим количество кустов. В цикле от 1 до n включительно, заполняем массив, чтобы закруглить цикл a[n+1]= a[1]; a[n+2]=a[2];. За max возымеем сумму ягод на первых трех кустах. В цикле от 2 до n+2 ищем максимальную сумму из трех рядом стоящих кустов, записываем ее в max. Выводим max.

Турист

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

В классе Гены K человек. Выясните, может ли он выбрать палатки так, чтобы в них все могли поместиться. При этом учитывайте, что выбранные палатки должны суммарно весить не более W килограмм.

Алгоритм решения:

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