Cod sursa(job #2809425)

Utilizator DordeDorde Matei Dorde Data 26 noiembrie 2021 23:22:43
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int const N = 5e5 + 3;
int v [N];
int main(){
    int n , k;
    fin >> n >> k;
    for(int i = 0 ; i < n ; ++ i)
        fin >> v [i];
    deque <int> d;
    int ans (-1) , left , right;
    for(int i = 0 ; i < n ; ++ i){
        while (d.size () && i - d.front () >= k)
            d.pop_front ();
        while (d.size () && v [d.back ()] > v [i])
            d.pop_back ();
        d.push_back (i);
        if (i >= k && v [d.front ()] > ans){
            ans = v [d.front ()];
            left = i - k + 2;
            right = i + 1;
        }
    }
    fout << left << ' ' << right << ' ' << ans << '\n';
    fin.close();
    fout.close();
    return 0;
}