Cod sursa(job #3281080)

Utilizator Floroiu_MariusFloroiu Marius Cristian Floroiu_Marius Data 28 februarie 2025 12:08:50
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k;
int v[500003];
deque<int> q;
struct raspuns
{
    int st,dr;
    int Min;
}rez;
int main()
{
    fin>>n>>k;
    for (int i=1;i<=k;i++)
    {
        fin>>v[i];
        while (!q.empty() && v[i]<=v[q.back()]) q.pop_back();
        q.push_back(i);
    }
    rez.Min=v[q.front()];
    rez.st=1,rez.dr=k;
    for (int i=k+1;i<=n;i++)
    {
        fin>>v[i];
        while (!q.empty() && v[i]<=v[q.back()]) q.pop_back();
        q.push_back(i);
        if (q.front()==i-k) q.pop_front();
        if (rez.Min<v[q.front()])
        {
            rez.Min=v[q.front()];
            rez.st=i-k+1;
            rez.dr=i;
        }
    }
    fout<<rez.st<<" "<<rez.dr<<" "<<rez.Min;
    return 0;
}