Cod sursa(job #2424527)

Utilizator ciocirlanrCiocirlan Robert ciocirlanr Data 23 mai 2019 10:48:39
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

ifstream in("secventa.in");
ofstream out("secventa.out");

int N,k;
int v[500001],stiva[500001];

int main(){

    in >> N >> k;
    for(int i = 1; i <= N; ++i)
        in >> v[i];

    int li = 1, ls = 0, poz = k, maxi =-500001;

    for(int i = 1; i <= N; ++i){
        while(li <= ls and v[i] <= v[stiva[ls]])
            ls--;

        ls++;
        stiva[ls] = i;

        if(stiva[li] == i - k)
            li++;

        if(i >= k and v[stiva[li]] > maxi){
            maxi = v[stiva[li]];
            poz = i;

        }
    }

    out << poz - k + 1 << " " << poz << " " << maxi;


    return 0;
}