J - Java Beans
#include<iostream> using namespace std; int max(int a,int b) { if(a>b) return a; else return b; } int main() { int n,M,N,i,j,k,ans; int ans1; int m; int a[210]; int sum[210]; cin>>n; while(n--) { cin>>M>>N; for(int x=1;x<=M;x++) sum[x]=0; ans=0; ans1=0; for(i=1;i<=M;i++) cin>>a[i];//sum[i]用于记录从第i个数开始求和的数值 for(i=1;i<=M;i++) { j=i; if(i<=M-N+1) { for(k=1;k<=N;k++) { sum[i]+=a[j]; j++; } if(sum[i]>ans) ans=sum[i]; } else { for(k=i;k<=M;k++) sum[i]=sum[i]+a[k]; for(j=1;j<N-M+i;j++) sum[i]=sum[i]+a[j]; if(sum[i]>ans1) ans1=sum[i]; } } m=max(ans,ans1); cout<<m<<endl; } }