您的位置:首页 > 其它

成绩累加排名,poj(2153)

2016-06-20 19:43 316 查看
题目链接: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 = 10010;

char li[40];
int n,m;
string name[maxn];
map<string,int > score;

int main()
{
scanf("%d",&n);
getchar();

for(int i=0;i<n;i++)
{
gets(li);
name[i] = li;
string st(li);
score[st] = 0;
}
scanf("%d",&m);
getchar();
char na[40];
strcpy(li,"Li Ming");

int mark;
while(m--)
{
for(int i=0;i<n;i++)
{
int a;
scanf("%d",&a);
getchar();
gets(na);
string st(na);
score[st]+=a;
if(strcmp(na,li)==0)
mark=score[st];
}
int rank=1;
for(int i=0;i<n;i++)
if(score[name[i]]>mark)
rank++;
printf("%d\n",rank);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: