Cod sursa(job #3267665)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 11 ianuarie 2025 19:14:58
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <deque>
using namespace std;

FILE *in = fopen("secventa.in", "r"), *out = fopen("secventa.out", "w");
int N, K;
int A[500005];
std::deque<int> D;
int max_base = -35000, st, en;

int main()
{
    fscanf(in, "%d %d", &N, &K);
    for (int i = 1; i <= N; ++i){
        fscanf(in, "%d", &A[i]);

        while(!D.empty() && A[D.back()] > A[i])
            D.pop_back();
        D.push_back(i);
        if (D.front() == i - K)
            D.pop_front();
        if (i >= K){
            if (A[D.front()] > max_base){
                max_base = A[D.front()];
                st = i - K + 1;
                en = i;
            }
        }

    }

    //for(int i = en + 1; i <= N && A[i] >= max_base; ++i)
    //    ++en;

    fprintf(out, "%d %d %d", st, en, max_base);
    return 0;
}