Vamos organizar a solução colocando todos os itens e preços em um dicionário, a fim de calcular os preços de acordo com as quantidades de cada produto compradas.
Na linguagem C, usei uma solução sem dicionários bem rudimentar e nada ótima. Mesmo assim, o programa passa, mostrando que uma solução apenas com busca linear em vetores também funcionaria.
#include<string.h>#include<stdio.h>intmain(){int N, M, P, quantidade;char fruta[50], frutas[100][50];double resposta, precos[100];scanf("%d",&N);for (int k =0; k < N; ++k) {scanf("%d",&M);for (int i =0; i < M; ++i) {scanf("%s%lf\n",&frutas[i],&precos[i]); }scanf("%d",&P); resposta =0.0;for (int i =0; i < P; ++i) {scanf("%s%d\n",&fruta,&quantidade);for (int j =0; j < M; ++j) {if (strcmp(fruta, frutas[j])==0) { resposta += quantidade * precos[j];break; } } }printf("R$ %.2lf\n", resposta); }return0;}
#include<iostream>#include<iomanip>#include<map>usingnamespace std;intmain(){ string fruta;double preco, resposta;int N, M, P, quantidade; map<string,double> precos; cin >> N;for (int k =0; k < N; ++k) {precos.clear(); cin >> M;for (int i =0; i < M; ++i) { cin >> fruta >> preco;precos.insert(pair<string,double>(fruta, preco)); } cin >> P; resposta =0.0;for (int i =0; i < P; ++i) { cin >> fruta >> quantidade; resposta += quantidade *precos[fruta]; } cout <<"R$ "<<setprecision(2) << fixed << resposta << endl; }return0;}
var input =require('fs').readFileSync('/dev/stdin','utf8');var lines =input.split('\n');letN=parseInt(lines.shift().trim());for(let k =0; k <N; ++k){letM=parseInt(lines.shift().trim());let precos = {};for(let i =0; i <M; ++i){let [fruta, preco] =lines.shift().trim().split(' '); precos[fruta] =parseFloat(preco); }letP=parseInt(lines.shift().trim());let resposta =0.0;for(let i =0; i <P; ++i){let [fruta, quantidade] =lines.shift().trim().split(' '); resposta +=parseInt(quantidade) * precos[fruta]; }console.log(`R$ ${resposta.toFixed(2)}`);}
N =int(input())for _ inrange(N): M =int(input()) precos ={}for _ inrange(M): fruta, preco =input().strip().split(' ') precos[fruta]=float(preco) P =int(input()) resposta =0.0for _ inrange(P): fruta, quantidade =input().strip().split(' ') resposta +=int(quantidade)* precos[fruta]print(f'R$ {resposta:.2f}')