HOOJ1231为什么运行不正确....
HDOJ1231:http://acm.hdu.我的代码实在返现不知道错在哪儿了,运行数据测试不正确;
哪位大哥帮我看看呗,感激不尽!
代码:
程序代码:
#include<stdio.h> #include<stdlib.h> #define MAX 10001 //动态规划:状态方程:c[n]=max{c[n-1]+a[n],a[n]}; int main(){ int K; while(scanf("%d",&K)!=EOF){ if(K==0)break; int a[MAX],i; for(i=0;i<K;i++){ scanf("%d",&a[i]); } int c[MAX],start[MAX],maxNum,start0,end; c[0]=a[0];//保存最大值; start[0]=a[0]; for(i=1;i<K;i++){ if(c[i-1]+a[i]>a[i]){ start[i]=start[i-1]; c[i]=c[i-1]+a[i]; } else{ start[i]=a[i]; c[i]=a[i]; } } maxNum=c[0]; start0=a[0]; end=a[0]; for(i=1;i<K;i++){ if(maxNum<a[i]){ maxNum=a[i]; start0=start[i]; end=a[i]; } } if(maxNum<0){ printf("0 %d %d\n",a[0],a[K-1]); } else{ printf("%d %d %d\n",maxNum,start0,end); } } }
[ 本帖最后由 xiajun0706 于 2011-2-25 18:08 编辑 ]