Cod sursa(job #1480674)

Utilizator tudorcomanTudor Coman tudorcoman Data 2 septembrie 2015 23:43:51
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb

#include <stdio.h>

const int maxN = 50000;
int v[maxN];

int main() {
	freopen("secv2.in", "r", stdin);
	freopen("secv2.out", "w", stdout);
	int N, K, S, L, R, St, Dr, Smax;

	scanf("%d%d", &N, &K);
	for(register int i = 0; i < N; ++ i)
		scanf("%d", &v[i]);

	S = Smax = v[0];
	St = 0;

	for(register int i = 1; i < N; ++ i) {
		if(S + v[i] > v[i])
			S += v[i], Dr = i;
		else
			S = v[i], St = Dr = i;

		if(S > Smax and (Dr - St + 1) >= K)
			Smax = S, L = St, R = Dr;
	}

	if(S > Smax and (Dr - St + 1) >= K)
		Smax = S, L = St, R = Dr;

	printf("%d %d %d\n", ++ L, ++ R, Smax);
	return 0;
}