Napisz program lub funkcję, która pobierze niepustą listę liczb całkowitych dodatnich. Możesz założyć, że jest on wprowadzany w rozsądnym dogodnym formacie, takim jak "1 2 3 4"
lub [1, 2, 3, 4]
.
Liczby na liście wprowadzania reprezentują wycinki pełnego wykresu kołowego, gdzie każdy rozmiar wycinka jest proporcjonalny do odpowiadającej mu liczby, a wszystkie wycinki są rozmieszczone wokół wykresu w podanej kolejności.
Na przykład ciasto dla 1 2 3 4
:
Pytanie, na które musi odpowiedzieć kod, brzmi: czy wykres kołowy jest kiedykolwiek podzielony na dwie części ? To znaczy, czy jest jakaś idealnie prosta linia z jednej strony koła na drugą, dzieląca ją symetrycznie na dwie części?
Trzeba wstawić truthy wartość, jeśli istnieje co najmniej jeden dwusieczna i wyprowadzać falsy wartość jeśli nie ma nikogo .
W tym 1 2 3 4
przykładzie istnieje podział między, 4 1
a 2 3
więc wynik byłby prawdziwy.
Ale dla danych wejściowych 1 2 3 4 5
nie ma dwusiecznych, więc dane wyjściowe byłyby fałszywe:
Dodatkowe przykłady
Różne układanie liczb może usuwać dwusieczne.
np. 2 1 3 4
→ falsy:
Jeśli na liście wejściowej znajduje się tylko jedna liczba, ciasto nie jest podzielone na dwie części.
np. 10
→ falsy:
Może być wiele dwusiecznych. Dopóki jest więcej niż zero, dane wyjściowe są zgodne z prawdą.
np. 6 6 12 12 12 11 1 12
→ prawda: (są tutaj 3 dwusieczne)
Podziały mogą istnieć, nawet jeśli nie są wizualnie oczywiste.
np. 1000000 1000001
→ falsy:
np. 1000000 1000001 1
→ prawda:
(Podziękowania dla nces.ed.gov za wygenerowanie wykresów kołowych.)
Przypadki testowe
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
Punktacja
Najkrótszy kod w bajtach wygrywa. Tiebreaker to wcześniejsza odpowiedź.