Cod sursa(job #3343294)

Utilizator EricDimiCismaru Eric-Dimitrie EricDimi Data 26 februarie 2026 19:45:28
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <deque>

using namespace std;

ifstream f("secventa.in");
ofstream g("secventa.out");

struct Elem
{
    int poz, val;
    Elem(int poz, int val)
    {
        this->poz = poz;
        this->val = val;
    }
};

int main()
{
    int N, K;
    deque<Elem> dq;
    //
    f >> N >> K;
    for(int i = 1; i <= K; i++)
    {
        int x;
        f >> x;
        while(!dq.empty() && dq.back().val >= x)
            dq.pop_back();
        dq.push_back(Elem(i, x));
    }
    int st = 1, dr = K, bMax = dq.front().val;
    for(int i = K + 1; i <= N; i++)
    {
        int x;
        f >> x;
        if(!dq.empty() && dq.front().poz == i - K)
            dq.pop_front();
        while(!dq.empty() && dq.back().val >= x)
            dq.pop_back();
        dq.push_back(Elem(i, x));
        if(dq.front().val > bMax)
        {
            st = i - K + 1;
            dr = i;
            bMax = dq.front().val;
        }
    }
    g << st << ' ' << dr << ' ' << bMax << '\n';
    f.close();
    g.close();
    return 0;
}