Cod sursa(job #2915833)

Utilizator db_123Balaban David db_123 Data 25 iulie 2022 12:57:30
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb

#include <fstream>
#include <vector>
#include <deque>

using namespace std;

ifstream cin("secventa.in");
ofstream cout("secventa.out");

int n,k;
vector<int> v;
deque<int> dq;

void read() {
    cin>>n>>k;
    v.resize(n+1);
    for(int i=1;i<=n;i++) {
        cin>>v[i];
    }
}

void solve() {
    int l=1,r=1,currMin;
    int res=-1e9;
    dq.push_back(1);
    int resS,resE;
    for(int i = 2; i <= n; i++){
        while(!dq.empty() && v[i] <= v[dq.back()]){
            dq.pop_back();
        }

        dq.push_back(i);

        if(dq.front()+k ==i)dq.pop_front();

        if(i >= k && res < v[dq.front()]){
            res = v[dq.front()];
            l = i - k + 1;
            r = i;
        }
    }
    cout<<l<<" "<<r<<" "<<res;
}

int main() {

    read();
    solve();
    return 0;
}