Cod sursa(job #3154617)

Utilizator Alex_BerbescuBerbescu Alexandru Alex_Berbescu Data 5 octombrie 2023 13:56:29
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#pragma GCC optimize("fast-math")
#pragma GCC optimize("O3")
#pragma GCC  optimize("unroll-loops")
#include<bits/stdc++.h>
using namespace std;
int n, k, v[500005], maxi = INT_MIN, lc, lmax, st, dr;
deque<int>dq;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int32_t main(int argc, char * argv[])
{
    fin >> n >> k;
    for(int i = 1; i <= n; ++i)
    {
        fin >> v[i];
    }
    for(int i = 1; i <= n; ++i)
    {
        while(!dq.empty() && v[dq.back()] > v[i])
        {
            dq.pop_back();
        }
        if(!dq.empty() && dq.front() == i - k)
        {
            dq.pop_front();
        }
        if(i >= k)
        {
            if(v[dq.front()] > maxi)
            {
                maxi = v[dq.front()];
                st = dq.front();
                dr = i;
            }
        }
        dq.push_back(i);
    }
    fout << st << " " << dr << " " << maxi;
    return 0;
}