Напишите программу или функцию, которая принимает непустой список натуральных чисел. Вы можете предположить, что это ввод в разумном удобном формате, таком как "1 2 3 4"
или [1, 2, 3, 4]
.
Числа в списке ввода представляют срезы полной круговой диаграммы, где каждый размер среза пропорционален соответствующему номеру, а все срезы расположены вокруг диаграммы в указанном порядке.
Например, пирог для 1 2 3 4
это:
Вопрос, на который должен ответить ваш код: является ли круговая диаграмма пополам ? То есть существует ли когда-нибудь идеально прямая линия от одной стороны круга к другой, симметрично разделив ее на две части?
Вам нужно вывести истинное значение, если есть хотя бы один биссектрису, и вывести ложное значение, если их нет .
В 1 2 3 4
примере есть бисекция между 4 1
и 2 3
поэтому выходом будет truthy.
Но для ввода 1 2 3 4 5
нет биссектрисы, поэтому результат будет ложным:
Дополнительные примеры
Расположение чисел по-разному может удалить биссектрисы.
например 2 1 3 4
→ ложь:
Если во входном списке только одно число, круг не разделен пополам.
например 10
→ ложь:
Там может быть несколько биссектрисы. Пока их больше нуля, вывод правдив.
например, 6 6 12 12 12 11 1 12
→ правдивый: (здесь есть 3 биссектрисы)
Бисекции могут существовать, даже если они не являются визуально очевидными.
например 1000000 1000001
→ ложь:
например, 1000000 1000001 1
→ правдиво:
(Спасибо nces.ed.gov за создание круговых диаграмм.)
Тестовые случаи
Truthy
1 2 3 4
6 6 12 12 12 11 1 12
1000000 1000001 1
1 2 3
1 1
42 42
1 17 9 13 2 7 3
3 1 2
10 20 10
Falsy
1 2 3 4 5
2 1 3 4
10
1000000 1000001
1
1 2
3 1 1
1 2 1 2 1 2
10 20 10 1
счет
Самый короткий код в байтах побеждает. Tiebreaker - более ранний ответ.