Cod sursa(job #1670591)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 31 martie 2016 21:05:41
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

int n,i,v[500001],k,p,j,u,maxim,x,w[500001],k2,d[500001];

ifstream fin ("secventa.in");

ofstream fout ("secventa.out");

int main (){

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

    p = 1;
    u = 1;
    d[1] = 1;
    for (i=2;i<=n;i++){
        while (p<=u && v[i] <= v[d[u]])
            u--;
        d[++u] = i;
        if (i-d[p] == k)
            p++;
        if (i>=k)
            w[++k2] = v[d[p]];
    }
    for (i=1;i<=k2;i++)
        if (w[i] > maxim){
            maxim = v[i];
            p = i;
        }
    for (i=1;i<=n;i++)
        if (v[i] == maxim){
            x = i;
            while (v[x] > v[i] && x >= 1)
                x--;
            fout<<x<<" ";
            fout<<i+k-(i-x+1)<<" "<<maxim;
            break;
        }


    return 0;
}