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

Time limited exceed 大家能不能帮忙看一下。

Posted by leoking at 2005-02-12 21:59:29 on Problem 1002
#include<iostream.h>

struct mphone
{
	int phone;
	int num;
};
int mphonenum=0;



void QuickSort(mphone *A,int low,int high)
{   int i,j;
	
    int ok=1;
	for(i=low;i<=high-1;i++)
	  if (A[i].phone>A[i+1].phone)
		{
			ok=0;
			break;
		}
	if (ok)
		return;

	
	
	mphone temp;
	if(low>=high) return;
	i=low;j=high;temp=A[i];
	while(i<j)
	{
		while(i<j&&temp.phone<A[j].phone) j--;
		if(i<j)
		{
			A[i++]=A[j];
		}
		while(i<j&&A[i].phone<=temp.phone) i++;
		if(i<j)
		{
			A[j--]=A[i];
		}
	}
	A[i]=temp;
	QuickSort(A,low,--j);
	QuickSort(A,++i,high);
}


	



int main()
{
	int num,bit,bitp,phonenum=0,phone;
	cin>>num;
	cin.get();
	char c0;

	int *phoneptr=new int[num+1];
	mphone *mphoneptr=new mphone[num+2];
	mphoneptr[num+1].phone=-1;

	for(int i=1;i<=num;i++)
	{   phoneptr[i]=0;
		mphoneptr[i].phone=-1;
		mphoneptr[i].num=0;
	    bitp=1000000;
		c0=cin.get();
		while (c0!='\n')
		{   
			
		    if('0'<=c0&&c0<='9')
			{
				bit=c0-48;
				phoneptr[i]+=bit*bitp;
				bitp/=10;
			}
			else if('A'<=c0&&c0<='Z')
			{
				switch(c0)
				{case 'A':case 'B':case 'C':
					bit=2;
					break;
				case 'D':case 'E':case 'F':
					bit=3;
					break;
				case 'G':case 'H':case 'I':
					bit=4;
					break;
				case 'J':case 'K':case 'L':
					bit=5;
					break;
				case 'M':case 'N':case 'O':
					bit=6;
					break;
				case 'P':case 'R':case 'S':
					bit=7;
					break;
				case 'T':case 'U':case 'V':
					bit=8;
					break;
				case 'W':case 'X':case 'Y':
					bit=9;
					break;
				default:
					bit=0;
					break;
				}
                
			phoneptr[i]+=bit*bitp;
				bitp/=10;

			}
		c0=cin.get();

		}
		
	}

        
		for(i=1;i<=num;i++)
		{
		   	phone=phoneptr[i];
		  if (phone!=-1)
		  {
			  phonenum=0;
			for(int j=1;j<=num;j++)
				if (phone==phoneptr[j])
				{
					phoneptr[j]=-1;
					phonenum++;
				}
			if (phonenum>=2)
			{
				mphonenum++;
				mphoneptr[mphonenum].phone=phone;
				mphoneptr[mphonenum].num=phonenum;
				
			}

				
		
		  }
		}


	QuickSort(mphoneptr,1,mphonenum);
		for(i=1;i<=mphonenum;i++)
	  cout<<mphoneptr[i].phone/10000<<"-"<<mphoneptr[i].phone%10000<<' '<<mphoneptr[i].num<<endl;

        
		return 0;

	
}



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