Solução por Anita Ramos
Este é um problema pertencente a 2º fase da OBI - Programação Nível Júnior, que não necessita tantos comandos distintos e mais complexos, mas que exige uma certa atenção para garantir a pontuação completa (100 pontos).
Iniciando a programação então, após declarar a biblioteca e as variáveis utilizadas, o programa lê a primeira linha de entrada e inicia um loop com o comando que irá ler as demais linhas de entrada, armazenando os valores nas variáveis e (alterados a cada leitura) e somando a multiplicação de um pelo outro a variável (resultado final). Por fim, ele imprimi essa variável .
O programa realmente é simples, mas podemos destacar um detalhe valioso na hora de resolvê-lo: não é necessário armazenar todos os valores de e . A cada linha que é lida, seus valores são definidos na entrada e a multiplicação entre eles é somada a variável , mas depois ambos podem ser descartados para a próxima leitura. Isso contribui para um código mais organizado, simples e compactado.
Segue o código comentado para melhor compreensão da solução:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> //biblioteca utilizada | |
using namespace std; | |
int main() | |
{ | |
int N, T, V, soma=0; //declaração das variáveis | |
scanf("%d", &N); //lê a primeira linha de entrada | |
for(int i=0; i<N; i++) //loop para ler as demais linhas de entrada | |
{ | |
scanf("%d %d", &T, &V); //lê o 'T' e o 'V' nas demais 'N' linhas | |
soma+=V*T; //soma o valor de 'V'x'T' à variável 'soma' | |
} | |
printf("%d", soma); //imprimi o valor da 'soma' final | |
return 0; //retorna a 0 | |
} |