Щоб перевірити, чи збалансований список невід’ємних цілих чисел , можна уявити, як розмістити відповідні ваги на дошці, а потім спробувати врівноважити дошку на шарнір, щоб узагальнені відносні ваги зліва та справа від стрижня були однаковими. Відносна вага задається шляхом множення ваги на її відстань до шарніра (див. Закон важеля ).
(Джерело: wikipedia )
Це зображення відповідає списку [100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]. Цей список збалансований, тому що 5має відстань 20 до стрижня, 100відстань 1 і 5*20 = 100 = 100*1.
Приклади
3 1 5 7
#########
^
У цьому випадку шарнір знаходиться прямо під 5, а 3має відстань 2 та значення 1та 7має відстань 1. Отже, обидві сторони зліва та справа від зсуву підсумовуються до 7( 3*2 + 1*1ліворуч та 7*1праворуч), тому список [3, 1, 5, 7]збалансований.
Однак зауважте, що шарнір не повинен розміщуватися під одним із елементів списку, але він також може бути розміщений між двома елементами списку:
6 3 1
#######
^
У цьому випадку відстані стають 0.5, 1.5, 2.5, ...тощо. Цей список також збалансований, оскільки 6*0.5 = 3 = 3*0.5 + 1*1.5.
Сверток може бути розміщений лише під одним числом або точно посередині між двома номерами, а не, наприклад, на дві третини між двома номерами.
Завдання
Враховуючи список невід’ємних цілих чисел у будь-якому розумному форматі, виведіть truthyзначення, якщо список можна збалансувати, а falsyзначення - інакше.
Можна припустити, що список вхідних даних містить щонайменше два елементи і що принаймні один елемент не дорівнює нулю.
Це завдання з гольф-кодом , тому відповідь з найменшою кількістю байтів на кожній мові виграє.
Трубні тести
[1, 0]
[3, 1, 5, 7]
[6, 3, 1]
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
[10, 4, 3, 0, 2, 0, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[7, 7, 7, 7]
Фальшиві тести
[1, 2]
[3, 6, 5, 1, 12]
[0, 0, 2, 0, 1, 0]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[6, 3, 2, 4, 0, 1, 2, 3]
[4, 0, 0, 2, 3, 5, 2, 0, 1, 2, 3, 0, 0, 1, 2, 4, 3, 1, 3, 0, 0, 2]
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
Чимало пов'язаних з цим проблем, коли ця проблема виявилася піскою : це збалансоване число? , Індекс рівноваги послідовності , Збалансуйте набір ваг на мотовилі , Балансуючи слова , Чи підкажу я? і куди належить стрижень?
You can assume that the input list contains at least two elements and that at least one element is non-zero.