hdu 2648 地图水过

hdu 2648 map水过
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<string>
#include<map>
using namespace std;

int main()
{
    int n,i;
    while(scanf("%d",&n)!=EOF){
        string temp;
        map<string,int >m1;
        m1.clear();
        for(i=0;i<n;i++) {
            cin>>temp;
            m1[temp]=0;
        }
        int t,flag;
        scanf("%d",&t);
        while(t--){
            int ans=0;
            for(i=0;i<n;i++){
                int a;
                string b;
                cin>>a>>b;
                m1[b]+=a;
                if(b=="memory"){
                    flag=m1[b];
                }
            }
            map<string,int>::iterator pp;
            pp=m1.begin();
            while(pp!=m1.end()){
                if(pp->second>flag)
                    ans++;
                pp++;
            }
            printf("%d\n",ans+1);
        }
    }
}