Escreva um programa ou função que inclua uma lista não vazia de números inteiros positivos. Você pode assumir que é inserido em um formato conveniente razoável, como "1 2 3 4"
ou [1, 2, 3, 4]
.
Os números na lista de entrada representam as fatias de um gráfico de pizza completo , em que cada tamanho de fatia é proporcional ao número correspondente e todas as fatias são organizadas em torno do gráfico na ordem fornecida.
Por exemplo, a torta para 1 2 3 4
é:
A pergunta que seu código deve responder é: O gráfico de pizza é dividido em duas partes ? Ou seja, existe sempre uma linha perfeitamente reta de um lado do círculo para o outro, dividindo-o simetricamente em dois?
Você precisa mostrar um truthy valor se houver pelo menos uma bissetriz e saída de um Falsas valor se não houver nenhum .
No 1 2 3 4
exemplo, há uma bissecção entre 4 1
e, 2 3
portanto, a saída seria verdadeira.
Mas, para entrada, 1 2 3 4 5
não há bissetor, portanto a saída seria falsa:
Exemplos adicionais
Organizar números de maneira diferente pode remover os bissetores.
por exemplo 2 1 3 4
→ falsy:
Se apenas um número estiver na lista de entrada, a torta não será dividida em partes.
por exemplo 10
→ falsy:
Pode haver vários bissetores. Desde que haja mais de zero, a saída é verdadeira.
por exemplo 6 6 12 12 12 11 1 12
→ truthy: (existem 3 bissetores aqui)
Podem existir bisseções mesmo que não sejam visualmente óbvias.
por exemplo 1000000 1000001
→ falsy:
por exemplo 1000000 1000001 1
→ verdade:
(Agradecemos a nces.ed.gov por gerar os gráficos de pizza.)
Casos de teste
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
Pontuação
O código mais curto em bytes vence. O desempatador é a resposta anterior.