#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
char PhoneNumber[100000][30];
int Count[100000];
int cmp_string(const void *_a,const void *_b)
{
char *a=(char *)_a;
char *b=(char *)_b;
return strcmp(a,b);
}
int TransToStandard(char a[][30],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<7;j++)
{
if(isalpha(a[i][j]))
{
if(a[i][j]<'Q')
{
a[i][j]=(a[i][j]-'A')/3+'2';
}
else
{
a[i][j]=(a[i][j]-'A'-1)/3+'2';
}
}
}
}
return 0;
}
int main()
{
freopen("755input.txt","r",stdin);
freopen("755out.txt","w",stdout);
int sets,i,j,k,SumTPNumber,ct,r,flag;
char c;
scanf("%d",&sets);
for(i=0;i<sets;i++)
{
j=0;
k=0;
ct=0;
flag=1;
for(r=0;r<100000;r++)
{
Count[r]=1;
}
scanf("%d",&SumTPNumber);
getchar();
while (j<SumTPNumber)
{
c=getchar();
if(c!='\n')
{
if(isdigit(c)||isalpha(c))
{
PhoneNumber[j][k++]=c;
}
}
else if(c=='\n')
{
j++;
k=0;
}
}
TransToStandard(PhoneNumber,SumTPNumber);
qsort(PhoneNumber,SumTPNumber,sizeof(PhoneNumber[0]),cmp_string);
//for(j=0;j<SumTPNumber;j++)puts(PhoneNumber[j]);
for(j=0;j<SumTPNumber;j++)
{
if(strcmp(PhoneNumber[j],PhoneNumber[j+1])== 0)
{
Count[ct]++;
}
else if(strcmp(PhoneNumber[j],PhoneNumber[j+1])!= 0)
{
ct++;
}
}
if(ct==SumTPNumber)
{
flag=0;
}
ct=0;
if(flag==0)
{
printf("No duplicates.\n");
}
else
{
for(j=0;j<SumTPNumber;j++)
{
if(strcmp(PhoneNumber[j],PhoneNumber[j+1])!= 0)
{
if(Count[ct]>1)
{
for(k=0;k<3;k++)
{
printf("%c",PhoneNumber[j][k]);
}
printf("-");
for(k=3;k<7;k++)
{
printf("%c",PhoneNumber[j][k]);
}
printf(" %d\n",Count[ct++]);
}
else
{
ct++;
}
}
}
}
for(j=0;j<SumTPNumber;j++)memset(PhoneNumber[j],'\0',sizeof(PhoneNumber[j]));
if(i<sets-1)printf("\n");
}
return 0;
}
UVA - 755 - 487--3279
最新推荐文章于 2015-12-21 06:44:38 发布