Cod sursa(job #1818503)

Utilizator cameleonGeorgescu Dan cameleon Data 29 noiembrie 2016 13:03:02
Problema Secventa Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 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]];

        for(i=k+1;i<=n;i++){
            if(i-dq[p]>=k)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;
    }