Cod sursa(job #2204961)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 17 mai 2018 13:01:33
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <limits.h>

using namespace std;

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

int n, k, i, maxim, poz1, poz2, v[500001], u, p, d[500001];
int main()
{
    fin >> n >> k;
    for (i=1; i<=n; i++){
        fin >> v[i];
    }
    maxim = INT_MIN;
    for (i=2; i<=n; i++){
        while (v[i] < v[d[u]] && p <= u){
            u--;
        }
        u++;
        d[u] = i;
        if (i - d[p] == k){
            p++;
        }
        if (i >= k){
            if (maxim < v[d[p]]){
                maxim = v[d[p]];
                poz1 = i;
            }
        }
    }

    fout << poz1 - k + 1 << " " << poz1 << " " << maxim;
    return 0;
}