求救--新手
杭电1003题。为什么我这个代码总是wrong answer啊?我觉得没有什么问题的呢!
地址是:http://acm.hdu.edu.cn/showproblem.php?pid=1003
谢谢各位大侠帮忙啦!
#include <stdio.h>#define NUM 100001int main(){ int nArr,nSum[NUM]; int nCase; int N,i,j=0; int nStart ,nEnd,nMaxSum; scanf("%d",&nCase); while(j<nCase) { j++; scanf("%d",&N); scanf("%d",&nArr); nSum[0] = nArr; nStart = 1; nEnd = 1; nMaxSum = nSum[0]; for (i=1;i<N;i++) { scanf("%d",&nArr); if (nSum[i-1]>=0) { nSum[i] =nSum[i-1]+nArr; } else { nSum[i] = nArr; } if (nSum[i]>=nMaxSum) { nMaxSum = nSum[i]; nEnd = i+1; } } if (nMaxSum>=0) { int nTmp = nMaxSum; for (i=nEnd-1;i>=0;i--) { if (nSum[i]<0) { break; } } if (i>=0) { nStart = i+2; } else { nStart = 1; } } else { nStart = nEnd; } printf("Case %d:\n",j); printf("%d %d %d\n",nMaxSum,nStart,nEnd); if(j!=nCase) printf("\n"); } return 0;}#include <stdio.h>#define NUM 100001int main(){ int nArr,nSum[NUM]; int nCase; int N,i,j=0; int nStart ,nEnd,nMaxSum; scanf("%d",&nCase); while(j<nCase) { j++; scanf("%d",&N); scanf("%d",&nArr); nSum[0] = nArr; nStart = 1; nEnd = 1; nMaxSum = nSum[0]; for (i=1;i<N;i++) { scanf("%d",&nArr); if (nSum[i-1]>=0) { nSum[i] =nSum[i-1]+nArr; } else { nSum[i] = nArr; } if (nSum[i]>=nMaxSum) { nMaxSum = nSum[i]; nEnd = i+1; } } if (nMaxSum>=0) { int nTmp = nMaxSum; for (i=nEnd-1;i>=0;i--) { if (nSum[i]<0) { break; } } if (i>=0) { nStart = i+2; } else { nStart = 1; } } else { nStart = nEnd; } printf("Case %d:\n",j); printf("%d %d %d\n",nMaxSum,nStart,nEnd); if(j!=nCase) printf("\n"); } return 0;}