| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
1002,超时了,求大牛们解释下哪里弄复杂了。。。#include<iostream>
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<algorithm>
void fun(char s[100])
{
int i,j=0;
char c[100]={'\0'};
c[3]='-';
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
{
c[j++]=s[i];
}
else
{
switch(s[i])
{
case('A'):c[j++]='2';break;
case('B'):c[j++]='2';break;
case('C'):c[j++]='2';break;
case('D'):c[j++]='3';break;
case('E'):c[j++]='3';break;
case('F'):c[j++]='3';break;
case('G'):c[j++]='4';break;
case('H'):c[j++]='4';break;
case('I'):c[j++]='4';break;
case('J'):c[j++]='5';break;
case('K'):c[j++]='5';break;
case('L'):c[j++]='5';break;
case('M'):c[j++]='6';break;
case('N'):c[j++]='6';break;
case('O'):c[j++]='6';break;
case('P'):c[j++]='7';break;
case('R'):c[j++]='7';break;
case('S'):c[j++]='7';break;
case('T'):c[j++]='8';break;
case('U'):c[j++]='8';break;
case('V'):c[j++]='8';break;
case('W'):c[j++]='9';break;
case('X'):c[j++]='9';break;
case('Y'):c[j++]='9';break;
default:break;
}
}
if(j==3) j++;
}
memcpy(s,c,sizeof(c));
}
typedef struct num
{
char a[10];
int m;
}num;
bool cmp(num x,num y)
{
return(strcmp(x.a,y.a)<0);
}
using namespace std;
int main()
{
int n,i,flag=0,j;
char s[100],c,*p;
num *x;
scanf("%d",&n);c=getchar();
x=(num *)malloc(sizeof(num)*n);
while(n--)
{
gets(s);p=s;fun(p);
for(i=0;i<flag;i++)
{
if(strcmp(p,x[i].a)==0)
{
(x[i].m)++;break;
}
}
if(i==flag) {x[flag].m=1;memcpy(x[flag].a,p,sizeof(x[flag].a));flag++;}
}
sort(x,x+flag,cmp);
for(i=0,n=0;i<flag;i++)
{
if(x[i].m>=2)
{
n++;
printf(x[i].a);
printf(" %d\n",x[i].m);
}
}
if(n==0) printf("No duplicates.");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator