Cod sursa(job #2498308)

Utilizator WilIiamperWilliam Damian Balint WilIiamper Data 23 noiembrie 2019 19:04:06
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define NMax 600005

using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int n, k, v[NMax], Deque[NMax], maxim = -50000, posi, poss;

int main()
{
    int i;
    fin >> n >> k;
    for (i = 1; i <= n; i++)
        fin >> v[i];
    int Front = 1, Back = 0;
    for (i = 1; i <= n; i++) {
        while (Front <= Back && v[i] <= v[ Deque[Back] ])
            Back--;

        Deque[++Back] = i;

        if (Deque[Front] == i-k) Front++;

        if (i >= k) {
            if (maxim < v[ Deque[Front] ]) {
                maxim = v[Deque[Front]];
                posi = Deque[Front];
                poss = Deque[Front] + k-1;
            }
        }
    }
    fout << posi << " " << poss << " " << maxim;
    return 0;
}