darth0
02.02.2022 22:02

Линия монорельса, построенная в столице Байтландии, не пользуется особой популярностью среди пассажиров. Изучив ситуацию, специалисты по транспортным потокам пришли к выводу, что место для постройки было выбрано очень неудачно. Равно как и конфигурация линии. Дело в том, что для популярности у жителей столицы новая линия должна быть кольцевой. А ещё лучше — если это были бы две кольцевые линии в разных районах города. В итоге было решено разобрать монорельсовую дорогу и из прямолинейных участков построить две примерно одинаковые кольцевые линии. Каждая линия представляет собой многоугольник, собранный из прямолинейных участков существующей линии. При этом многоугольник должен иметь ненулевую площадь, каждый участок существующей линии должен быть использован в новых сооружениях ровно один раз, участки должны быть использованы целиком «как есть» (то есть разрезание прямолинейного участка не допускается).

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

Формат ввода
Первая строка входных данных содержит одно целое число N (6 ≤ N ≤ 40). Вторая строка содержит N целых чисел l1, l2, …, lN (1 ≤ lN ≤ 100) — длины прямолинейных участков.

Формат вывода
Выведите одно целое неотрицательное число — наименьшую возможную разность периметров. Если построить две кольцевые монорельсовые линии нельзя, выведите -1.

Пример 1
Ввод Вывод
6
4 4 5 4 4 4
1
Пример 2
Ввод Вывод
7
3 2 1 1 2 3 2
0
Пример 3
Ввод Вывод
6
1 1 1 1 1 10
-1

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
анжелаКоТ1
10.02.2020 14:01

using namespace std;

struct Treugolnik

{

int x1, y1;

int x2, y2;

int x3, y3;

};

int main()

{

Treugolnik a1;

cin >> a1.x1;

cin >> a1.x2;

cin >> a1.x3;

cin >> a1.y1;

cin >> a1.y2;

cin >> a1.y3;

float S, P, h,p;

 P = sqrt(pow(a1.x2 - a1.x1, 2) + pow(a1.y2 - a1.y1, 2))+sqrt(pow(a1.x3 - a1.x2, 2) + pow(a1.y3 - a1.y2, 2))+ sqrt(pow(a1.x3 - a1.x1, 2) + pow(a1.y3 - a1.y1, 2));

 p = 0.5*(sqrt(pow(a1.x2 - a1.x1, 2) + pow(a1.y2 - a1.y1, 2)) + sqrt(pow(a1.x3 - a1.x2, 2) + pow(a1.y3 - a1.y2, 2)) + sqrt(pow(a1.x3 - a1.x1, 2) + pow(a1.y3 - a1.y1, 2)));

 S = sqrt(p*(p - sqrt(pow(a1.x2 - a1.x1, 2) + pow(a1.y2 - a1.y1, 2*(p - sqrt(pow(a1.x3 - a1.x2, 2) + pow(a1.y3 - a1.y2, 2)))*(p - sqrt(pow(a1.x3 - a1.x1, 2) + pow(a1.y3 - a1.y1, 2)));

 h = 2 * S / sqrt(pow(a1.x2 - a1.x1, 2) + pow(a1.y2 - a1.y1, 2)); только к одной стороне  

 if (sqrt(pow(a1.x2 - a1.x1, 2) + pow(a1.y2 - a1.y1, 2)) == sqrt(pow(a1.x3 - a1.x2, 2) + pow(a1.y3 - a1.y2, 2)) == sqrt(pow(a1.x3 - a1.x1, 2) + pow(a1.y3 - a1.y1, 2)))

  cout << "ранвостронний";

 if (pow(sqrt(pow(a1.x2 - a1.x1, 2) + pow(a1.y2 - a1.y1, 2)), 2)+pow(sqrt(pow(a1.x3 - a1.x2, 2) + pow(a1.y3 - a1.y2, 2)),2)==pow(sqrt(pow(a1.x3 - a1.x1, 2) + pow(a1.y3 - a1.y1, 2)),2));

 cout << "прямоугольный";

 cout << S;

 cout << h;

 cout << P;

 return 0;

}

0,0(0 оценок)
Ответ:
motya10432
13.12.2022 21:09
1) Называется системой команд исполнителя (СКИ)
2)
Понятность 
Надо сказать, что алгоритм должен быть понятен не только автору, но и исполнителю. Если мы предложим исполнителю, например утюгу постирать одежду, то он никогда этого не сделает, потому, что не поймет, т. к. такой программы в нём не заложено. Или, например, если мы предложим какому-нибудь мальчику испечь торт то у него, как правило, ни чего не получится, потому что этого они делать не умеют. Но если мы составим подробный алгоритм работы, разобьем его на элементарные шаги, такие, что он без труда поймёт и сможет выполнить каждый шаг, то он сможет успешно испечь любой торт. Каждый шаг алгоритма обязательно представляет собой какое-либо допустимое действие исполнителя. Это свойство алгоритма называют понятностью. 
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота