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

大家看看为什么阿,第一个case就tle崩溃阿~~~~大家看看那里问题阿 !!多谢多谢

Posted by first at 2003-11-10 12:10:21 on Problem 1009
Problem Id:1009  User Id:first 
Memory:-488K  Time:0MS
~~~~~~~~~~~~~~~~~~
Language:C++  Result:Time Limit Exceed

Source 

#include <iostream> 
#include <vector>
using namespace std;
void main()
{
 	short gray,dist,tempd;
	long int N,num,i,j;
	vector <short> graydata;
	 graydata.push_back(0);
	vector <long>min;
     min.push_back(0);
    vector<long>max;
	 max.push_back(0);
	scanf("%ld\n",&N);
	while(N!=0)
	{
	scanf("%d %ld",&gray,&num);
	while(gray!=0||num!=0)
	{  
		graydata.push_back(gray);
	    min.push_back(max.back()+1);
		max.push_back(min.back()+num-1);
        scanf("%d %ld",&gray,&num);
	}
	printf("%ld\n",N);
	int k;
	num=0;dist=0;tempd=-1;
    for(i=1;i<graydata.size();i++)
	{
	   for(j=min[i];j<=max[i];j++)
	   {     
		      
			  if(j-N-1>=min[i]&&j+N+1<=max[i]) 
				 if(tempd!=0)
				{
				cout<<tempd<<num<<endl;
                num=max[i]-min[i]-2*N-1;
				tempd=0;
				j=max[i]-N-1;
				}
			    else 
				{
				  num+=max[i]-min[i]-2*N-1;
				  j=max[i]-N-1;
				}
			   else
			   {
				   if(j%N!=1)
				   {
					   k=i;
				   while(k>=1&&j-N-1<min[k])
					   k--;
				     if(k>=1)
					 dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
				   	   k=i;
				   while(k>=1&&j-1<min[k])
					  k--;
                     if(k>=1)
				     dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
					  k=i;
                    while(k<graydata.size()&&j+N-1>max[k])
					  k++;
					if(k<graydata.size())
			    	dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
				   }
                      
				        k=i;
					while(k>=0&&j-N<min[k])
					    k--;
                    if(k>=1)
				   dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
					   k=i;
                    while(k<graydata.size()&&j+N>max[k])
				     	 k++;
					if(k<graydata.size())
				   dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
					if(j%N!=0)
					{
					  k=i;
					while(k>=1&&j-N+1<min[k])
					 k--;
                    if(k>=1)
			        dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
                    
					 k=i;
                    while(k<graydata.size()&&j+1>max[k])
					   k++;
					if(k<graydata.size())
				   dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
					    k=i;
                    while(k<graydata.size()&&j+N+1>max[k])
					 k++;
					if(k<graydata.size())
			        dist=(dist<abs(graydata[i]-graydata[k]))?abs(graydata[i]-graydata[k]):dist;
					}                      
					if(tempd==-1)
					{ tempd=dist;num=1;dist=0;}
					else if(dist!=tempd)
					{  
						printf("%d %ld\n",tempd,num);
						num=1;tempd=dist;dist=0;}
					else
					{num++;dist=0;}
			   }
                    
			 
			  
          } 

	}
        printf("%d %ld\n",tempd,num);
		printf("%d %ld\n",0,0);
    	graydata.resize(1);
		min.resize(1);
		max.resize(1);
	    scanf("%d",&N);
}
	    printf("%d",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