Cod sursa(job #380418)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 6 ianuarie 2010 09:28:50
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

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

int n,k,i,dq[1<<19],v[1<<19],st=1,dr=0,maxx=0,minc,s,d;

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

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

int main(){
	in>>n>>k;
    st=1; dr=0;
    for(i=1;i<=n;i++){
        in>>v[i];
    }
	for(i=1;i<k;i++){
		dreapta (i);
	}
    for(i=k;i<=n;i++){
        stanga(i);
        dreapta(i);
        if(v[dq[st]]>maxx){
            maxx=v[dq[st]];
			s=dq[st];
			d=dq[dr];
        }
    }
	out<<s<<" "<<d<<" "<<maxx;
	return 0;
}