AOJ 0516
・問題リンク Maximum Sum
・コメント
はじめ問題文を読み違え桁を間違えていた結果1時間も悩まされました()
・ソース
#include<iostream> using namespace std; int main() { long value[100000]; long temp; long ans; long n,c; while(true){ //入力設定 cin>>n>>c; //終了判定 if(n==0&&c==0)break; //入力 for(int i=0;i<n;i++){ cin>>value[i]; } //はじめのc個までの値を辻褄合わせで保持 temp=0; for(int i=0;i<c;i++)temp=temp+value[i]; ans=temp; //2重でTLEなので int i; int j; for(i=0,j=c;j<n;i++,j++){ temp=temp-value[i]; temp=temp+value[j]; if(temp>ans)ans=temp; } //出力 cout<<ans<<endl; } return 0; }