Cod sursa(job #1793642)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 31 octombrie 2016 12:07:40
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

using namespace std;

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

int n, i, j, a[500005];
int fr, bk, dq[500005];
int maxim, ml, mr, k;

int main() {
    f >> n >> k;
    for (i = 1; i <= n; i++)
        f >> a[i];

    fr = 1, bk = 0;
    for (i = 1; i <= n; i++) {
        while (fr <= bk && a[dq[bk]] >= a[i])
            bk--;

        dq[++bk] = i;

        if (dq[fr] == i-k)
            fr++;
        if (a[dq[fr]] > maxim) {
            maxim = a[dq[fr]];
            ml = dq[fr];
            mr = i;
        }
    }
    g << ml << ' ' << mr << ' ' << maxim;
    return 0;
}