Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

1002为什么总是过不了,总是说超时,就算用了sort和qsort都没用

Posted by hdm2968 at 2006-02-06 13:06:38
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator