Cod sursa(job #3202439)

Utilizator UengineDavid Enachescu Uengine Data 11 februarie 2024 16:13:11
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <deque>

using namespace std;

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

const int N = 5e5;
short v[N + 5];
deque <int> dq;

int main(){
    int n, k, st = -1, dr = -1 , maxim = -1e9;
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
        cin >> v[i];
    for(int i = 1; i <= n; i++){
        while(!dq.empty() && dq.front() == i - k)
            dq.pop_front();
        while(!dq.empty() && v[dq.back()] > v[i])
            dq.pop_back();
        dq.push_back(i);
        if(!dq.empty() and i >= k and v[dq.front()] > maxim){
            maxim = v[dq.front()];
            st = i - k + 1;
            dr = i;
        }
    }
    cout << st << ' ' << dr << ' ' << maxim;
    return 0;
}