Cod sursa(job #1818507)

Utilizator cameleonGeorgescu Dan cameleon Data 29 noiembrie 2016 13:09:21
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
    #include <fstream>
    using namespace std;
    ifstream fin("secventa.in");
    ofstream fout("secventa.out");
    int n,k,a[5000002],dq[5000002],maxim,st,dr;

    int main () {
        int i,p=1,u=0;
        fin>>n>>k;
        for( i=1;i<=n;i++)
            fin>>a[i];
        for(i=1;i<=k;i++){
            while(p<=u && a[dq[u]]>=a[i]) u--;
            dq[++u]=i;
        }
       maxim=a[dq[p]];dr=k;st=1;

        for(i=k+1;i<=n;i++){
            if(dq[p]+k>=i)p++;
            while(p<=u && a[dq[u]]>=a[i]) u--;
            dq[++u]=i;
            if(maxim<a[dq[p]]){
                maxim=a[dq[p]];
                dr=i;
                st=dr-k+1;
            }
        }
       fout<<st<<" "<<dr<<" "<<maxim;



    return 0;
    }