| ||||||||||
| 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为什么总是过不了,总是说超时,就算用了sort和qsort都没用#include <iostream>
using namespace std;
struct sm{int i,c;sm(){i=c=0;}};sm* num=0,sw;
int GetI(char* s)
{
int r=0;
while(*s!='\0')
{
if(*s>47&&*s<58)r=r*10+*s-48;
else if(*s>64&&*s<91)
{if(*s>81)r=r*10+(*s-1)/3;
else r=r*10+(*s-59)/3;}
}
return r;
}
void main()
{
int n,c=0;char str[16];bool val=true;
cin>>n;
num=new sm[n];
for(int z=0;z<n;z++)
{
cin>>str;
int t=GetI(str);
for(int i=0;i<c;i++)
{
if(num[i].i==t)
{num[i].c++;break;}
}
if(i==c)
{
num[c].i=t;num[c++].c++;
}
}
for(z=0;z<c;z++)
{
for(unsigned int x=0;x<c-1;x++)
{
if(num[x].i>num[x+1].i){sw=num[x];num[x]=num[x+1];num[x+1]=sw;}
}
}
for(z=0;z<c;z++)
{
if(num[z].c >1)
{
val=false;
int b=int(num[z].i*0.0001),d=num[z].i-b*10000;if(b<100)cout<<0;if(b<10)cout<<0;
cout<<b<<"-";if(d<1000)cout<<0;if(d<100)cout<<0;if(d<10)cout<<0;cout<<d<<" "<<num[z].c<<endl;
}
}
if(val)cout<<"No duplicates."<<endl;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator