那些年寮里的崽儿们 CSU - 1924
(非洲)阴阳师LZH大人在寮里养了很多的崽儿,现在养了这么多年,突然想给崽儿们来个式神户口普查,于是乎,普查开始了。 “R,山兔一只”...“R,九命猫一只”...“ R,三尾狐一只”... “哎,你们别乱动啊,都数乱了!!!” “算了,你们一个个都自己过来下报下名字。” 然而,当LZH记下所有崽儿的名字后,眼睛近视的LZH看着密密麻麻的字近视了100度,就在LZH要弃疗的时候,发现CSU正在举办ACM的月赛,于是乎,他把这个问题交给了我们未来伟大的ACMer——您,所以你来帮帮这位可怜的阴阳师大人吧。
输入包含多组数据。 每组数据开始是一个整数n(n<=100),接下来的每一行,是普查时,一个崽儿所属的种类。
输出开始输出一行“Case i:”,其中i代表是第几组数据。 接下来每一行输出崽儿的种类和数量,格式参考样例,种类的顺序按照普查时第一个该种类出现的顺序输出。
2 Xuenv Jiumingmao 3 Xuenv Jiumingmao Xuenv 3 Jiumingmao Xuenv Xuenv
Case 1: Xuenv 1 Jiumingmao 1 Case 2: Xuenv 2 Jiumingmao 1 Case 3: Jiumingmao 1 Xuenv 2
非常水的一道题目。
代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
int main()
{
int n;
int u=1;
while(scanf("%d",&n)!=EOF)
{
map<string,int> p;
string a[100];
string t;
int index=0;
for(int i=0;i<n;i++)
{
cin>>t;
if(p[t])
{
p[t]++;
}else{
a[index++]=t;
p[t]++;
}
}
printf("Case %d:\n",u++);
for(int i=0;i<index;i++)
{
cout<<a[i]<<" "<<p[a[i]]<<endl;
}
}
return 0;
}

浙公网安备 33010602011771号