那些年寮里的崽儿们

一位阴阳师大人决定为他的式神进行户口普查,并记录每个种类的数量。由于眼睛近视,他请求ACMer的帮助。输入数据包括多组式神种类,任务是统计每种式神的数量并按首次出现顺序输出。

(非洲)阴阳师LZH大人在寮里养了很多的崽儿,现在养了这么多年,突然想给崽儿们来个式神户口普查,于是乎,普查开始了。 “R,山兔一只”...“R,九命猫一只”...“ R,三尾狐一只”... “哎,你们别乱动啊,都数乱了!!!” “算了,你们一个个都自己过来下报下名字。” 然而,当LZH记下所有崽儿的名字后,眼睛近视的LZH看着密密麻麻的字近视了100度,就在LZH要弃疗的时候,发现CSU正在举办ACM的月赛,于是乎,他把这个问题交给了我们未来伟大的ACMer——您,所以你来帮帮这位可怜的阴阳师大人吧。

Input

输入包含多组数据。 每组数据开始是一个整数n(n<=100),接下来的每一行,是普查时,一个崽儿所属的种类。

Output

输出开始输出一行“Case i:”,其中i代表是第几组数据。 接下来每一行输出崽儿的种类和数量,格式参考样例,种类的顺序按照普查时第一个该种类出现的顺序输出。

Sample Input
2
Xuenv
Jiumingmao
3
Xuenv
Jiumingmao
Xuenv
3
Jiumingmao
Xuenv
Xuenv
Sample Output
Case 1:
Xuenv 1
Jiumingmao 1
Case 2:
Xuenv 2
Jiumingmao 1
Case 3:
Jiumingmao 1

Xuenv 2

用map和string

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
int main()
{
    int n;
    map<string,int>s;
    string s1[1000];
    int t=1;
    while(scanf("%d",&n)!=EOF)
    {
        printf("Case %d:\n",t);
        t++;
        for(int i=0; i<n; i++)
        {
            cin>>s1[i];
            s[s1[i]]++;
        }
        map<string,int>::iterator ii;
        for(int i=0; i<n; i++)
        {
            if(s[s1[i]]!=0)
            {
                cout<<s1[i]<<" "<<s[s1[i]]<<endl;
                s[s1[i]]=0;
            }
        }
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值