Cod sursa(job #906548)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 6 martie 2013 21:47:22
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
using namespace std;
ofstream fout ("secventa.out");
ifstream fin ("secventa.in");
int n,k,front,back,i,d[5000010],maxim,x,inceput,sfarsit;
long long v[5000010];

int main () {

    maxim=-30000;
    fin>>n>>k;
    for (i=1;i<=n;i++)
        fin>>v[i];

    front = 1; back = 0;

    for (i=1;i<=n;i++) {

        while (front<=back && v[i] <= v[d[back]]) back --;

        d[++back]= i;

        while (v[d[front]]<=maxim) front++;


        if (i-d[front]+1>=k&&v[d[front]]>maxim) {
            inceput=d[front];
            sfarsit=d[back];
            maxim=v[d[front]];
        }


    }

    fout<<inceput<<" "<<sfarsit<<" "<<maxim;

    fout<<"\n";

    return 0;
}