Cod sursa(job #3315264)

Utilizator stefan_ciureaStefan Ciurea stefan_ciurea Data 13 octombrie 2025 13:57:58
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <deque>
#include <climits>
using namespace std;

const int Nmax=500005;

int v[Nmax];

deque<int> dq;

int main()
{
    ifstream fin("secventa.in");
    ofstream fout("secventa.out");
    int n,k;
    fin>>n>>k;
    for (int i=1; i<=n; ++i) {
        fin>>v[i];
    }
    int sol=INT_MIN,l,r;
    for (int i=1; i<=n; ++i) {
        while (!dq.empty() && v[i]<v[dq.back()]) {
            dq.pop_back();
        }
        dq.push_back(i);
        if (!dq.empty() && dq.front()<=i-k) {
            dq.pop_front();
        }
        if (i>=k && sol<v[dq.front()]) {
            r=i;
            l=i-k+1;
            sol=v[dq.front()];
        }
    }
    fout<<l<<' '<<r<<' '<<sol;
    fin.close();
    fout.close();
    return 0;
}