Cod sursa(job #865340)

Utilizator drobertDumitru Robert drobert Data 26 ianuarie 2013 12:54:12
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("secventa.in");
ofstream g("secventa.out");


int n,k,i,deque[500005],v[500005];
int front=1,back,maximul=-999999,st,dr;

int main ()
{
	f>>n>>k;
	for (i=1;i<=n;i++)
		f>>v[i];
	for (i=1;i<=n;i++)
	{
		while (front<=back && v[i]<=v[deque[back]])
			back--;
		deque[++back]=i;
		if (deque[front]==i-k)
			front++;
		if (i>=k)
		{
			if (v[deque[front]]>maximul)
			{
				maximul=v[deque[front]];
				st=deque[front];
				dr=deque[back];
			}
		}
	}
	g<<st<<" "<<dr<<" "<<maximul;
}