Cod sursa(job #3314327)

Utilizator filipdanieloanFilip-Daniel Oancea filipdanieloan Data 9 octombrie 2025 14:22:07
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;

constexpr int NMAX = 5e5 + 5;

int v[NMAX];

int main()
{
#ifndef LOCAL
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
#endif
    int N, K;
    scanf("%d%d", &N, &K);

    for(int i = 1; i <= N; ++i)
        scanf("%d", &v[i]);

    int dr = INT_MAX, maxx = INT_MIN;
    deque<int> dq;
    for(int i = 1; i <= N; ++i) {
        while(!dq.empty() && i - dq.front() >= K)
            dq.pop_front();
        while(!dq.empty() && v[dq.back()] >= v[i])
            dq.pop_back();
        dq.push_back(i);
        if(i < K) continue;
        if(v[dq.front()] > maxx) {
            maxx = v[dq.front()];
            dr = i;
        }
    }

    printf("%d %d %d", dr-K+1, dr, maxx);

    return 0;
}