Cod sursa(job #3312686)

Utilizator Andrei1209Andrei Mircea Andrei1209 Data 29 septembrie 2025 15:19:23
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");

deque<int> deq;
int n, k, v[500005];
int main()
{
    fin >> n >> k;
    int i;
    for ( i = 1; i <= n; ++i )
        fin >> v[i];

    for ( i = 1; i <= k; ++i )
    {
        while ( deq.empty() == false && v[deq.back()] > v[i])
            deq.pop_back();
        deq.push_back(i);
    }
    int sol = v[deq.front()], poz = k;
    for ( i = k + 1; i <= n; ++i )
    {
        if ( deq.front() == i - k )
            deq.pop_front();
        while ( deq.empty() == false && v[deq.back()] > v[i])
            deq.pop_back();
        deq.push_back(i);
        if ( sol < v[deq.front()] )
        {
            sol = v[deq.front()];
            poz = i;
        }
    }
    fout << poz - k + 1 << " " << poz << " " << sol << '\n';
    return 0;
}