#include <cstdio>
#include <cstring>
#include <map>
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX_CHAR 80
#define MAXN 2001
typedef struct NODE_ {
int index;
string country;
}NODE;
NODE node[MAXN];
int n, idx, rst[MAXN];
int cmp(const NODE &a, const NODE &b)
{
return a.country < b.country;
}
int main(int argc, char const *argv[])
{
#ifndef ONLINE_JUDGE
freopen("test.in", "r", stdin);
#endif
string name;
map<string, int> hash;
map<string, int>::iterator it;
char text[MAX_CHAR], t_name[MAX_CHAR];
while( ~scanf("%d", &n) ) {
memset(rst, 0, sizeof(rst)); getchar(), idx = 0;
for(it = hash.begin(); it != hash.end(); it ++) {
hash.erase(it);
}
for(int i = 0; i < n; i ++) {
gets(text); sscanf(text, "%s", t_name); name = t_name;
if( hash.end() == (it = hash.find(name)) ) {
hash.insert(map<string, int>::value_type(name, idx ++)); continue;
}
rst[ it->second ] ++;
}
idx = 0;
for(it = hash.begin(); it != hash.end(); it ++) {
node[idx].index = it->second; node[idx ++].country = it->first;
}
sort(node, node+idx, cmp);
for(int i = 0; i < idx; i ++) {
printf("%s %d\n", node[i].country.c_str(), rst[ node[i].index ]+1);
}
}
return 0;
}uva_10420 List of Conquests
最新推荐文章于 2019-02-16 23:05:35 发布
本文深入探讨了C++编程中利用Map数据结构和自定义排序函数进行高效数据处理的方法。通过实例展示了如何在输入数据集合中查找、插入和输出特定元素,并使用自定义比较函数实现复杂的数据排序。此教程适用于希望提高其C++编程技能,特别是对数据管理和排序算法感兴趣的开发者。

534

被折叠的 条评论
为什么被折叠?



