Cod sursa(job #778171)

Utilizator starduststardust stardust Data 14 august 2012 03:47:00
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 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=0,l,r;
int n,k;
void read()
{
	in>>n>>k;
	for(int i=1;i<=n;i++)
		in>>v[i];
	front=1;
	for(int i=1;i<=n;i++)
	{
		while(v[i]<=v[d[back]] && front<=back) back--;
		d[++back]=i;
		
		if(d[back]-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;
}