Cod sursa(job #778175)

Utilizator starduststardust stardust Data 14 august 2012 04:22:03
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 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) back--;
		d[++back]=i;
		
		if(v[d[front]]>sol && i>=k) sol=v[d[front]],r=i,l=r-k+1;
		
		if(d[back]-d[front]+1>=k)
		{
			front++;
		}
	}
}

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