Cod sursa(job #1505786)

Utilizator juniorOvidiu Rosca junior Data 19 octombrie 2015 19:18:50
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

int maxt, i, k, minv, j, a[500001], n, c1, c2, bz[500001], s, l[500001];

int main()
{
    ifstream f ("secventa.in");
    ofstream g ("secventa.out");
    f >> n >> k;
    for (i = 1; i <= n; i++) f >> a[i];
    s = 1; maxt = a[1]; bz[0] = 30001; bz[1] = a[1]; j = 1;
    for (i = 2; i <= n; i++) {
        while(a[i] < bz[j]) j--;
        j++;
        bz[j] = a[i]; l[j] = i;
        if (i - l[s] == k)
            s++;
        if (k <= i)
            if (bz[s] > maxt) {
                c1 = i - k + 1; c2 = i; maxt = bz[s];
            }
    }
    g << c1 << " " << c2 << " " << maxt;
    f.close ();
    g.close ();
    return 0;
}
/*
-1 2 3 1 0 8 4 6
         5     8

bz: 4 6
    s d


1

*/