Cod sursa(job #596913)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 20 iunie 2011 10:34:06
Problema Secventa Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>

using namespace std;

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

const int N=500001;

short int n,k,v[N],dq[N],st,dr;

void stanga(int i){
	while(i-dq[st]==k){
		st++;
	}
}

void dreapta(int i){
	while(st<=dr && v[dq[dr]]>v[i]){
		dr--;
	}
	dq[++dr]=i;
}

int main(){
	int i,max=-40000,maxs,maxd;
	in>>n>>k;
	for(i=1;i<=n;i++){
		in>>v[i];
		stanga(i);
		dreapta(i);
		if(v[dq[st]]>max && i>k){
			max=v[dq[st]];
			//maxs=dq[st];
			maxd=i;
		}
	}	
	out<<maxd-k+1<<" "<<maxd<<" "<<max;
	return 0;
}