Cod sursa(job #184081)

Utilizator coderninuHasna Robert coderninu Data 22 aprilie 2008 23:36:37
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define Nmax 50001

int c[Nmax], k[Nmax], v[Nmax], p, u, P, U, N, K, rez, i;

int main()
{
	for (freopen("secv2.in", "r", stdin), scanf("%d %d\n", &N, &K), i = 1; i<=N; i++) scanf("%d ", v+i);
	for (i = 1; i<=K; i++) c[K]+=v[i];
	k[K] = c[K];
	p = P = 1;
	u = U = K;
	rez = c[K];
	for (i = K + 1; i<=N; i++)
	{
		k[i] = k[i-1] - v[i-K] + v[i];
		if (k[i] > c[i-1] + v[i])
		{
			c[i] = k[i];
			u = i;
			p = i-K+1;
		}
		else
		{
			c[i] = c[i-1] + v[i];
			u++;
		}
		if (c[i] > rez) 
		{
			rez = c[i];
			P = p;
			U = u;
		}
	}
	fprintf(fopen("secv2.out", "w"), "%d %d %d\n", P, U, rez);
	return 0;
}