Cod sursa(job #3222081)

Utilizator gBneFlavius Andronic gBne Data 9 aprilie 2024 08:43:54
Problema Secventa Scor 100
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(i >= k){
            if(dq.front().first > mn){
                mn = dq.front().first;
                i1 = i - k + 1;
                i2 = i;
            }
        }
    }
    fout << i1 << ' ' << i2 << ' ' << mn << '\n';
    return 0;
}