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

这道题的onlinejudge有bug

Posted by coast at 2007-08-20 17:33:24 on Problem 1356
这样的代码也通过了
我开始做错了
但还ac了
include<iostream.h>
struct pis{                                                   //点的位置
	int x;
	int y;
};
pis* p;
int work(pis *,int,int,int);                                               //核心算法
void main()
{
	int n;
	cin>>n;
	while(n--)
	{
		int m,a;
		cin>>m>>a;
		p=new pis[m];
	 	int i=0;
		while(i<m)
		{
			cin>>p[i].x>>p[i].y;
			i++;
		}
		int max=0;
		i=0;
		while(i<m)
		{
			int temp=work(p,i,m,a);
			if(temp>max)
				max=temp;
			i++;
		}
		cout<<max<<endl;
			delete p;		
	}
}
int work(pis* p,int i,int m,int a)
{
	int max=0;
	int dec=0;
	pis fix;
	fix.x=p[i].x;
	fix.y=p[i].y;
	while(dec<4)
	{
		int count=0;
		if(dec==0)
		{
			for(int j=0;j<m;j++)
			{
				if(p[j].x>=fix.x&&p[j].y>=fix.y&&p[j].x<=fix.x+a&&p[j].y<=fix.y+a)
					count++;
			}
		}
		if(dec==1)
		{
			for(int j=0;j<m;j++)
			{
				if(p[j].x>=fix.x&&p[j].y<=fix.y&&p[j].x<=fix.x+a&&p[j].y>=fix.y-a)
					count++;
			}
		}
		if(dec==2)
		{
			for(int j=0;j<m;j++)
			{
				if(p[j].x<=fix.x&&p[j].y<=fix.y&&p[j].x>=fix.x-a&&p[j].y>=fix.y-a)
					count++;
			}
		}	
		if(dec==3)
		{
			for(int j=0;j<m;j++)
			{
				if(p[j].x<=fix.x&&p[j].y>=fix.y&&p[j].x>=fix.x-a&&p[j].y<=fix.y+a)
					count++;
			}
		}
		if(count>max)
			max=count;
		dec++;
	}
	return max;
}


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