Cod sursa(job #778174)

Utilizator starduststardust stardust Data 14 august 2012 03:59:14
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream>
#define maxn 500005

using namespace std;

ifstream in("secventa.in");
ofstream out("secventa.out");
int v[maxn],d[maxn];
int back,front,sol=-1<<30,l,r;
int n,k;
void read()
{
	in>>n>>k;
	front=1;
	for(int i=1;i<=n;i++)
	{
		in>>v[i];
		while(v[i]<v[d[back]] && front<=back && n-i+1>=k) back--;
		d[++back]=i;
		
		if(i-d[front]+1>=k)
		{
			if(v[d[front]]>sol) sol=v[d[front]],l=d[front],r=d[back];
			front++;
		}
	}
}

int main()
{
	read();
	out<<l<<" "<<r<<" "<<sol;
}