Cod sursa(job #416622)

Utilizator TabaraTabara Mihai Tabara Data 13 martie 2010 00:55:14
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;

const char* in = "secv2.in";
const char* out = "secv2.out";
const int NMAX = 50005;
const int INF = (1<<30);

int N, K;
int sum[NMAX], minx, maxx, sol;
int begin, end;

int main ( void )
{
	freopen ( in, "r", stdin );
	freopen ( out, "w", stdout );

	scanf ( "%d%d", &N, &K );

	int i,okj,Y;
	for ( i = 1; i <= N; ++i )
	{
		scanf ( "%d", &Y );
		sum[i] = sum[i-1] + Y;
	}

	sol = maxx = sum[K];
	begin = 1;
	end = K;
	okj = 1;

	for ( i = K+1; i <= N; ++i ) {
		maxx += sum[i]-sum[i-1];
		if ( maxx < sum[i] - sum[i-K] )
			maxx = sum[i] - sum[i-K], okj = i-K+1;
		if ( maxx > sol ) sol = maxx, begin = okj, end = i;
	}
	/*	if ( minx > sum[i-K] ) minx = sum[i-K], okj = i-K+1;
		X = sum[i] - minx;
		if ( X > maxx ) maxx = X, begin = okj, end = i;
	}
*/
	printf ( "%d %d %d\n", begin, end, sol );
	return 0;
}