Shopping
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2572 Accepted Submission(s): 893
Then n lines ,each line contains a string (the length is short than 31 and only contains lowercase letters and capital letters.)stands for the name of the shop.
Then a line contians a number m (1<=m<=50),stands for the days .
Then m parts , every parts contians n lines , each line contians a number s and a string p ,stands for this day ,the shop p 's price has increased s.
題意:有N個店,他們的商品價格每天都在上漲,問你 ith天有個叫memory的店,它的價格在所有商店中,有幾個高過它,
輸出它的排名,有k個高過它,它就是第k+1名。
map水過。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <string>
#define N 100005
using namespace std;
int n;
map<string,int>mp;
char s[100];
int main() {
// freopen("test.in","r",stdin);
while(~scanf("%d",&n)) {
mp.clear();
for(int i=1; i<=n; i++) {
scanf("%s",s);
mp[s]=0;
}
map<string,int>::iterator it;
int d;
scanf("%d",&d);
while(d--) {
int x;
for(int i=1; i<=n; i++) {
scanf("%d%s",&x,s);
mp[s]+=x;
}
int k=0;
for(it=mp.begin(); it!=mp.end(); it++) {
if(it->second>mp["memory"]) {
k++;
}
}
printf("%d\n",++k);
}
}
}