Solução Informática – Nível Iniciante – Semana 2

por

Solução por Anita Almeida

Este problema utiliza apenas os comandos mais simples de programação, mas envolve algumas ideias essenciais para resoluções de outras questões, como a de enumerar o teste de cada resposta, a de somar um novo valor a uma variável $$X$$ e determinar isso como a própria variável $$X$$ e a de que não é necessário apresentar o resultado apenas no final, mas sim durante a lógica do programa.

Iniciando a programação então, após adicionar as bibliotecas e declarar as variáveis, o programa lê o primeiro valor de entrada $$m$$ e o armazena nas variáveis $$m_1$$ e $$m_2$$. Após isso, temos a primeira verificação que checa se o programa deve encerrar ou não, ou seja, se a entrada é 0. Essa verificação é feita durante toda a lógica. Em seguida, o programa lê todos os $$X$$ de $$X_1$$ até $$X_m$$ e sempre soma o $$X_i$$ à variável $$R$$, que seria o resultado final, por isso a função de $$+=$$. Depois de ler tudo, entra uma parte muito importante que é a de somar 1 na variável $$cont$$ sempre que encerrar a leitura, definindo a que teste essa resposta $$R$$ pertence. Logo depois, o programa imprime o teste em que se encontra, a resposta correspondente e deixa uma linha em branco, conforme dito no enunciado (lembrando que é de extrema importância seguir o roteiro de estrutura da resposta dado). Por fim, ele lê o novo valor de $$m$$, o armazena em $$m_1$$ e $$m_2$$ e zera o resultado anterior $$R$$ para começar um novo teste caso o $$m$$ não seja 0.

Apenas como observação, é importante lembrar que alguns softwares específicos, ao imprimir uma saída no programa, já a imprime conforme cada teste é encerrado. Porém, isso é característico apenas do software e não funciona igualmente quando é submetido à avaliação do problema na maioria das correções. Assim, você não deve se preocupar caso em seus testes, antes da avaliação, imprimam a resposta de acordo com a ordem dos testes e sim, se a resposta e a sua estrutura de saída estão corretas. Além disso, como uma segunda observação, é importante ressaltar que não é necessário ler qual o operador $$(+/-)$$, já que se o próximo $$X$$ for positivo ele é somado normalmente a $$R$$ e se ele for negativo, por ser escrito na entrada como $$-X$$ ele já é subtraído sem problemas, afinal, $$R+(-X)$$ é o mesmo que $$R-X$$.

Segue o código comentado para melhor compreensão da solução:

https://gist.github.com/anitainfo/543ca5f1aa44422123d57b55b2122745