lisadonik
08.06.2023 04:38

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

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

Формат ввода
Первая строка входных данных содержит одно целое число 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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ksiusha131
06.10.2020 09:42
Треугольник существует, если a < (b+c), b < (a+c), c < (a + b)
Он равносторонний, если a=b=c
Он равнобедренный, если a=b!=c, a=c!=b, b=c!=a (!= всмысле не равно)
Иначе произвольный
Разве не очевидно?

Програмка на питоне: https://pastebin.com/raw/fKQqvfDb
Там я сначала проверяю, что треугольник существует, потом проверяю, что две его любые стороны равны. Если при этом ещё и сумма всех сторон делённая на 3 равна одной из них, то они все равны => он равносторонний. Иначе он равнобедренный. Если условие про равенство двух сторон не выполняется, то он - произвольный. Как упростить - не знаю.
0,0(0 оценок)
Ответ:
nutka1980
06.10.2020 09:42
Треугольник существует, если a < (b+c), b < (a+c), c < (a + b)
Он равносторонний, если a=b=c
Он равнобедренный, если a=b!=c, a=c!=b, b=c!=a (!= всмысле не равно)
Иначе произвольный
Разве не очевидно?

Програмка на питоне: https://pastebin.com/raw/fKQqvfDb
Там я сначала проверяю, что треугольник существует, потом проверяю, что две его любые стороны равны. Если при этом ещё и сумма всех сторон делённая на 3 равна одной из них, то они все равны => он равносторонний. Иначе он равнобедренный. Если условие про равенство двух сторон не выполняется, то он - произвольный. Как упростить - не знаю.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота