题意:题目还是很简单的,就是求Li Ming 在班上的排名,而且成绩是相加的。
思路:用map就行。不然好像用qsort+二分也可以,不过我在那里碰到了一些状况,然后就没用这种方法了,简单的map就可以解决。
map是根据前面的类型来进行排序的,map是有序的。
Memory: 1220K Time: 1407MS
Language: C++ Result: Accepted
Source Code
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <map>
#include <string> using namespace std; int main()
{
int n,m,ans;
char s[100];
while(scanf("%d",&n)!=EOF)
{
getchar();
map<string,int>mp;
map<string,int>:: iterator it;
for(int i=0;i<n;i++)
{
gets(s);
mp[s]=0;
}
scanf("%d",&m);
for(int i=0;i<m;i++)
{
for(int j=0,tmp=0;j<n;j++)
{
scanf("%d",&tmp);
getchar();
gets(s);
mp[s]+=tmp;
}
ans=0;
for(it=mp.begin();it!=mp.end();it++)
if(it->second>mp["Li Ming"]) ans++;
printf("%d\n",ans+1);
}
}
return 0;
}