Cod sursa(job #2484996)

Utilizator FlaviusFeteanFetean Flavius FlaviusFetean Data 31 octombrie 2019 21:01:48
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");

int dq[500005], v[500005];

int main()
{
    int N, K, i, x, b = 1, e = 0, bSirCerut, minimax;

    fin >> N >> K;
    for(i = 1; i <= N; i++) fin >> v[i];

    for(i = 1; i <= K; i++){
        dq[++e] = v[i];
        while(e > b && dq[e] < dq[e - 1]) dq[--e] = dq[e + 1];
    }
    minimax = dq[1]; bSirCerut = 1;
    for(i = K + 1; i <= N; i++){
        if(dq[b] == v[i - K]) b++;
        dq[++e] = v[i];
        while(e > b && dq[e] < dq[e - 1]) dq[--e] = dq[e + 1];
        if(dq[b] > minimax) minimax = dq[b], bSirCerut = i - K + 1;
    }

    fout << bSirCerut << ' ' << bSirCerut + K - 1 << ' ' << minimax;

    return 0;
}