Cod sursa(job #1099773)

Utilizator pulseOvidiu Giorgi pulse Data 6 februarie 2014 12:03:36
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>

using namespace std;

#define NMAX 50003
#define INF 0x3f3f3f3f

int n, k, maxim = -INF, smax = -INF;
int sum[NMAX];

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

	int first, last, j, s;

	scanf ("%d %d", &n, &k);
	for (int i = 1, x; i <= n; ++i)
	{
		scanf ("%d", &x);
		sum[i] = sum[i - 1] + x;
	}

	for (int i = n - k + 1; i > 0; --i)
	{
		if (sum[i + k - 1] > maxim)
		{
			j = i + k - 1;
			maxim = sum[i + k - 1];
		}

		s = maxim - sum[i - 1];
		if (s > smax)
		{
			first = i;
			last = j;
			smax = s;
		}
	}

	printf ("%d %d %d\n", first, last, smax);

	return 0;
}