题目链接: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; }
时间: 2024-10-24 06:43:13