map
C++用来存储字典关系的东西,map是最好的
#include <bits/stdc++.h>
using namespace std;
/*
小朱最喜欢逛超市了,他会将要买的东西和买的数量用小本本记起来,
你偷偷拿走了他的小本本,并算出他一共花了多少钱?
当然,小朱很聪明,对于相同的物品,他会优先买便宜的。
先输入一个数字N,表示各个超市的总商品数,接下来输入N行,
每行一个字符串和一个数字,分别表示商品名称以及其价格,
(注意 因为来自不同的超市,商品可能存在名称相同,但价格不同的情况),
接下来输入一个数字K,表示小本本上记录的行数,接下来输入K行,
每行一个字符串和一个数字,表示要买的商品以及数量,问小朱花了多少钱?(假设商品供应充足)
*/
int N; //表示各个超市的总商品数
int K; //表示小本本上记录的行数
int sum = 0; //总钱数
map<string,int> price; //价格map
int main(){
ios::sync_with_stdio(0);
cin>>N;
for(int i=0; i < N; i++) {
string str;
int money ;
cin>>str>>money;
//第一个条件map默认是0,第二个条件如果有更便宜的换掉价格
if(price[str]==0 || price[str]>money) {
price[str]=money;
}
}
cin>>K;
for(int j=0; j < K; j++) {
string str2;
int value;
cin>>str2>>value;
sum+=price[str2]*value;
}
cout<<sum<<endl;
return 0;
}