题目思想很简单,每次给 每个 商品加价值
然后问你一个商品的怕[排名
嘛,数据很小,直接暴力修改
#include<bits/stdc++.h>
using namespace std;
int n,m,me=0;
map<string,int>q;
int main(){
while(scanf("%d",&n)==1){
me=0;
q.clear();
for(int i=1;i<=n;i++){
string x;
cin>>x;
q.insert(make_pair(x,0));
}
cin>>m;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
string x;int y;
cin>>y>>x;
if(x=="memory")me+=y;
else q[x]+=y;
}
int rank=1;
map<string,int>::iterator pp;
for(pp=q.begin();pp!=q.end();pp++){
if(pp->second>me){
rank++;
}
}
cout<<rank<<endl;
}
}
}