UVA 755

#include<iostream>
#include<cctype>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
int main()
{
    map <char,char> ch_in;
    ch_in.insert(make_pair('A','2'));
    ch_in.insert(make_pair('B','2'));
    ch_in.insert(make_pair('C','2'));
    ch_in.insert(make_pair('D','3'));
    ch_in.insert(make_pair('E','3'));
    ch_in.insert(make_pair('F','3'));
    ch_in.insert(make_pair('G','4'));
    ch_in.insert(make_pair('H','4'));
    ch_in.insert(make_pair('I','4'));
    ch_in.insert(make_pair('J','5'));
    ch_in.insert(make_pair('K','5'));
    ch_in.insert(make_pair('L','5'));
    ch_in.insert(make_pair('M','6'));
    ch_in.insert(make_pair('N','6'));
    ch_in.insert(make_pair('O','6'));
    ch_in.insert(make_pair('P','7'));
    ch_in.insert(make_pair('R','7'));
    ch_in.insert(make_pair('S','7'));
    ch_in.insert(make_pair('T','8'));
    ch_in.insert(make_pair('U','8'));
    ch_in.insert(make_pair('V','8'));
    ch_in.insert(make_pair('W','9'));
    ch_in.insert(make_pair('X','9'));
    ch_in.insert(make_pair('Y','9'));
    ch_in.insert(make_pair('0','0'));
    ch_in.insert(make_pair('1','1'));
    ch_in.insert(make_pair('2','2'));
    ch_in.insert(make_pair('3','3'));
    ch_in.insert(make_pair('4','4'));
    ch_in.insert(make_pair('5','5'));
    ch_in.insert(make_pair('6','6'));
    ch_in.insert(make_pair('7','7'));
    ch_in.insert(make_pair('8','8'));
    ch_in.insert(make_pair('9','9'));

    int n;
    cin>>n;
    cin.ignore();
    while(n--)
    {
        int m,i,j;
        cin>>m;
        cin.ignore();
        map<string,int>jidu;
        for(i=0;i<m;i++)
        {
            string  temp;
            int flag=0;
            getline(cin,temp);
            string temp_str(temp);
            for(j=0;j<temp.length();j++)
            {
                if(temp[j]!='-')
                    temp_str[flag++]=ch_in[temp[j]];
            }
            temp_str.insert(3,"-");
            temp_str=temp_str.substr(0,8);
            jidu[temp_str]++;
        }
        map<string,int>::iterator it;
        int flagg=0;
        for(it=jidu.begin();it!=jidu.end();it++)
        {
            if(it->second>1)
            {
                cout<<it->first<<" "<<it->second<<endl;
                flagg=1;
            }
        }
        if(flagg==0)
            cout<<"No duplicates."<<endl;
        if(n!=0)cout<<endl;
    }
    return 0;
}

 

posted @ 2012-04-28 12:02  open your eyes  阅读(236)  评论(0编辑  收藏  举报