Cod sursa(job #298007)

Utilizator cristiprgPrigoana Cristian cristiprg Data 5 aprilie 2009 19:21:05
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
#include <climits>

int main()
{
	FILE *f =fopen("secv2.in", "r");
	int n, k, s = 0, beg = 1, end = 1, ibun, v, smax = -INT_MAX;
	fscanf(f, "%d%d", &n, &k);
	for (int i = 1; i <= n; i++)
	{
		fscanf(f, "%d", &v);
		if (i - beg + 1 < k)
			s += v, end = i;
		else
		{
			if (s >= 0)
				s += v;
			else
				s = v, ibun = i;

			if (s > smax)
			{
				smax = s;
				end = i;
				if (s < 0)
					beg = end - k + 1;
				else
					beg = ibun;
			}

		}
	}

	fclose(f);
	f = fopen("secv2.out", "w");
	fprintf(f, "%d %d %d\n", beg, end, smax);
	fclose(f);

	return 0;
}