Cod sursa(job #3222079)

Utilizator gBneFlavius Andronic gBne Data 9 aprilie 2024 08:39:07
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

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

const int OO = (1 << 30);

deque< pair<int, int> > dq;

int main()
{
    int n, k, x;
    fin >> n >> k;
    int i1, i2, mn;
    i1 = i2 = 1;
    mn = - OO;
    for(int i=1; i<=n; ++i){
        if(dq.size() > 0){
                if(i - dq.front().second + 1 > k){
                    dq.pop_front();
                }
        }
        fin >> x;
        while(dq.size() > 0 && dq.back().first > x){
            dq.pop_back();
        }
        dq.push_back(make_pair(x, i));
        if(dq.front().first > mn && i - dq.front().second + 1 == k){
            mn = dq.front().first;
            i1 = dq.front().second;
            i2 = i;
        }

    }
    fout << i1 << ' ' << i2 << ' ' << mn << '\n';
    return 0;
}