Cod sursa(job #648381)

Utilizator ELHoriaHoria Cretescu ELHoria Data 13 decembrie 2011 12:22:14
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

int dq[500001] , v[50001] , s[50001] , bk , fr , N , K;
int pos1 , pos2 , dim , smax;

int main()
{
	fin>>N>>K;

	for(int i = 1;i<=N;++i)
		fin>>v[i] , s[i]+=s[i-1] + v[i];

	dq[++bk] = 1; fr = 1;
	smax = s[K] , pos1 = 1, pos2 = K;
	for(int i = 1;i<=N;++i)
	{
		if(s[i+K-1] - s[dq[fr]] > smax)
			smax = s[i+K-1] - s[dq[fr]] , pos1 = dq[fr] + 1 , pos2 = i + K-1;
		while(fr<=bk && s[i]<=s[dq[bk]]) bk--;
		dq[++bk] = i;
	}
	fout<<pos1<<" "<<pos2<<" "<<smax;
	return 0;
}