Cod sursa(job #2938183)

Utilizator eduard_mihailaMihaila Eduard eduard_mihaila Data 11 noiembrie 2022 19:14:02
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

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

deque<int> D;

int n, k, a[500001], vmax=-30001, start, final;

void citire() {
    fin>>n>>k;
    for (int i=0; i<n; i++)
        fin>>a[i];
}

void parcurgere() {
    D.push_back(0);
    for (int i=1; i<n; i++) {
        while (!D.empty() && a[i]<a[D.back()])
            D.pop_back();
        D.push_back(i);
        if (D.front()<=i-k)
            D.pop_front();
        if (i>=k-1 && a[D.front()]>vmax) {
            vmax=a[D.front()];
            start=i-k+2;
            final=i+1;
        }
    }
}

int main() {
    citire();
    parcurgere();
    fout<<start<<" "<<final<<" "<<vmax;
    return 0;
}