DP_最大子序列和(HDU_1003)
#include <stdio.h> #include <string.h> #define MAX 0x7ffff #define M void run(int __case,int __t) { int n,start,end,add,in,max,lo; start=end=lo=1; add=0; max=-MAX; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&in); add+=in; if(add > max) { max=add; start=lo; end=i; } if(add < 0) { add=0; lo=i+1; } } printf("Case %d:\n",__case); printf("%d %d %d\n",max,start,end); if(__case != __t) printf("\n"); } int main(int argc, char *argv[]) { #ifdef __LOCAL freopen("in.txt","r",stdin); #endif int t; scanf("%d",&t); for(int i=1;i<=t;i++) { run(i,t); } return 0; }