成绩累加排名,poj(2153)

时间:2023-03-09 05:07:12
成绩累加排名,poj(2153)

题目链接:http://poj.org/problem?id=2153

解题报告:

注意map中的string,因此要将char[]转换为string型。

#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <algorithm>
#include <map> using namespace std; const int maxn = ; char li[];
int n,m;
string name[maxn];
map<string,int > score; int main()
{
scanf("%d",&n);
getchar(); for(int i=;i<n;i++)
{
gets(li);
name[i] = li;
string st(li);
score[st] = ;
}
scanf("%d",&m);
getchar();
char na[];
strcpy(li,"Li Ming"); int mark;
while(m--)
{
for(int i=;i<n;i++)
{
int a;
scanf("%d",&a);
getchar();
gets(na);
string st(na);
score[st]+=a;
if(strcmp(na,li)==)
mark=score[st];
}
int rank=;
for(int i=;i<n;i++)
if(score[name[i]]>mark)
rank++;
printf("%d\n",rank);
}
return ;
}