和hdu 1003一样
#include<iostream> using namespace std; int main() { int n; int num[10003]; while(scanf("%d",&n) != EOF&&n) { int i,j,sum = 0,begin,end; int max = INT_MIN; bool flag = false; for(i = 0;i < n;i++) { scanf("%d",num+i); if(num[i] >= 0) flag = true; } if(!flag) printf("%d %d %d\n",0,num[0],num[n-1]); else { for(i = j = 0;i < n;i++) { sum += num[i]; if(sum > max) max = sum,begin = j,end = i; if(sum < 0) sum = 0,j = i+1; } printf("%d %d %d\n",max,num[begin],num[end]); } } return 0; }