Cod sursa(job #907439)

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

int main () {

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

    front = 1; back = 0; maxim=-30000;

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

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

        d[++back]= i;

        if (i - d[front] == k)
            front ++;

        if (i>=k)
            if (v[d[front]] > maxim) {
                maxim=v[d[front]];
                inceput=d[front];
            }
    }


    fout << inceput << " " << inceput+k-1 << " " << maxim << "\n";

    return 0;
}