Cod sursa(job #717615)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 20 martie 2012 08:31:24
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;

ifstream f("secv2.in"); ofstream g("secv2.out");

int sp[50005], dp[50005], v[50005], dp1[500005], i, j, n, k, x, y, xx, yy, s, t, scv;

int main(){
	f>>n>>k;
	for (i=1; i<=n; i++){
		f>>v[i];
		sp[i]=sp[i-1]+v[i];
		dp1[i]=max(v[i], v[i]+dp1[i-1]);
	}
	
	s=-2000000000; xx=1; yy=k;
	
	for (i=1; i<k; i++) dp[i]=sp[i];
	
	for (i=k; i<=n; i++){
		scv=sp[i]-sp[i-k];
		if (scv>scv+dp1[i-k]) { dp[i]=scv; xx=i-k+1; }
		else { dp[i]=scv+dp1[i-k]; }
		
		if (dp[i]>s){
			s=dp[i];
			x=xx;
			y=yy;
		}
		yy++;
	}
	
	g<<x<<" "<<y<<" "<<s;
}