Escrito por Pedro Racchetti
Conhecimento prévio necessário:
A ideia para resolvermos esse problema, é perceber que se estamos analisando a soma do prefixo de $$i$$, e já encontramos algum outro prefixo com valor igual a esse, então temos que adicionar um novo valor, já que entre esse outro prefixo e $$i$$, os números com certeza somam a $$0$$. Como esse valor pode ser arbitrariamente grande, podemos adicionar um valor muito grande, tal que nenhum intervalo que passe por ele terá soma 0. Portanto, podemos passar a ignorar todos os prefixos até então, e recomeçar a soma dos prefixos. Para isso, precisamos apenas de uma variável, $$pref$$ que guardará o prefixo atual, e um $$set$$ para guarda todos os prefixos que estão sendo analisados.
Segue o código, comentado, para melhor compreensão do problema:
https://gist.github.com/PedroRacchetti/484695e80d572a206ff097d0d89c4f05
