Cod sursa(job #3158685)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 19 octombrie 2023 17:16:36
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
int v[500001];
deque <int> q;
int main()
{
    int n, k, maxi = -30001, l, r;
    in >> n >> k;
    for( int i = 1; i <= n; i++ )
        in >> v[i];
    for( int i = 1 ; i <= n; i++ ){
        while( !q.empty() && q.front() <= i - k )
            q.pop_front();
        while( !q.empty() && v[i] <= v[q.back()])
            q.pop_back();
        if( !q.empty() && i >= k ){
            if( v[q.front()] > maxi ){
                maxi = v[q.front()];
                l = i-k+1;
                r = i;
            }
        }
        q.push_back(i);
    }
    out << l << " " << r << " " << maxi;
    return 0;
}