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

Re:哪位帮忙看一下,在我机器上好着,也做到了全是负数的情况,但是就是WA,不知为什么?

Posted by cfdream at 2007-04-18 00:35:52 on Problem 1050
In Reply To:哪位帮忙看一下,在我机器上好着,也做到了全是负数的情况,但是就是WA,不知为什么? Posted by:cfdream at 2007-04-18 00:32:23
> #include<iostream>
> using namespace std;
> int plus(int **arr,int lrud[4],int sum[4],int rectangle[4])
> {
> 	int rows=rectangle[3]-rectangle[2]+1;
> 	int cols=rectangle[1]-rectangle[0]+1;
> 	for(int i=0;i<4;i++)
> 	{
> 		if(i==1||i==0)
> 		{
> 			int colth=lrud[i];
> 			for(int m=rectangle[2],j=0;j<rows;j++)
> 				sum[i]+=arr[m+j][colth];
> 		}else{
> 			int rowth=lrud[i];
> 			for(int j=0,m=rectangle[0];j<cols;j++)
> 				sum[i]+=arr[rowth][m+j];
> 		}
> 	}
> 	return 1;
> }
> void main()
> {
> 	int N;
> 	cin>>N;
> 	if(N<0||N>100)
> 		exit(-1);
> 	int sign=0,negative=-128;
> 	int **arr=new int *[N];
> 	for(int i=0;i<N;i++)
> 	{
> 		arr[i]=new int[N];
> 		for(int j=0;j<N;j++){
> 			cin>>arr[i][j];
> 			int temp=arr[i][j];
> 			if(temp<-127||temp>127)
> 				exit(-1);
> 			if(temp>=0)
> 				sign=1;
> 			else if(temp>negative)
> 				negative=temp;
> 		}
> 	}
> 	if(sign==0)
> 		cout<<negative;
> 	else
> 	{
> 		int lrud[4]={0,N-1,0,N-1},sum[4]={0,0,0,0};
> 		int rectangle[4]={0,N-1,0,N-1};
> 		int layer=1;
> 		while((lrud[0]!=lrud[1]&&lrud[1]>lrud[0])||(lrud[2]!=lrud[3]&&lrud[3]>lrud[2]))
> 		{
> 			plus(arr,lrud,sum,rectangle);
> 			int temp=0,k=-1;
> 			for(int i=0;i<4;i++)
> 				if(sum[i]<temp)
> 				{
> 					temp=sum[i];
> 					k=i;
> 				}
> 			if(temp<0)
> 			{	
> 				for(int j=0;j<4;j++)
> 					sum[j]=0;
> 				if(k==0||k==2)
> 					lrud[k]++;
> 				else lrud[k]--;
> 				rectangle[k]=lrud[k];
> 			}else{
> 				for(int j=0;j<4;j++)
> 				{
> 					if(j==0||j==2)
> 						lrud[j]++;
> 					else lrud[j]--;
> 				}
> 			}//else
> 		}
> 		int all=0;
> 		for(i=rectangle[2];i<=rectangle[3];i++)
> 			for(int j=rectangle[0];j<=rectangle[1];j++)	
> 				all+=arr[i][j];
> 		cout<<all<<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