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

为什么总是WA?

Posted by hgd07 at 2009-08-11 10:01:01 on Problem 2479
#include <stdio.h>
#include <string.h>
int s[2][50000],p[50000];

int main()
{
	int n,m,i,max[2];
	scanf("%d",&n);
	while( n --)
	{
		scanf("%d",&m);
		for( i =0; i <m; i ++)
			scanf("%d",&p[i]);
		memset(s,0,2*m*sizeof(int));
		s[0][0] = p[0]>0?p[0]:0;
		s[1][m-1] = p[m-1]>0?p[m-1]:0;
		for( i =1; i <m; i ++)  //第一次处理
		{
			s[0][i] = s[0][i-1]+p[i];
			if( s[0][i] <0)	s[0][i] = 0;
			s[1][m-i-1] = s[1][m-i]+p[m-i-1];
			if( s[1][m-i-1] <0)	s[1][m-i-1] = 0;
		//	printf("%4d%4d\n",s[0][i],s[1][m-i-1]);
		}
		max[0] = max[1] = 0;
		for( i =0; i <m; i ++) //第二次处理
		{
			if( max[0]<s[0][i])
				max[0] = s[0][i];
			else s[0][i] = max[0];
			if( max[1]<s[1][m-i-1])
				max[1] = s[1][m-i-1];
			else s[1][m-i-1] = max[1];
		//	printf("%4d%4d\n",s[0][i],s[1][m-i-1]);
		}
		max[0] = 0;
		for( i =0; i < m-1; i ++)  //求最大
			if( max[0] <s[0][i]+s[1][i+1])
				max[0] =s[0][i]+s[1][i+1];
		printf("%d\n",max[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