Cod sursa(job #2999651)

Utilizator raulababeiAbabei Raul raulababei Data 11 martie 2023 11:27:54
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <deque>

using namespace std;

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

int n, a[500001];
int k;
int q[500001];
int maxim = -30001;

int main()
{
    in >> n >> k;
    for(int i = 1;i <= n;i++){
        in >> a[i];
    }
    int pq = 0, uq = -1;
    int val = 0;
    for(int i = 1;i <= n;i++){
        while(pq <= uq && a[i] <= a[q[uq]]){
            uq--;
        }
        q[++uq] = i;
        if(q[pq] <= i - k){
            pq++;
        }
        if(i >= k){
                if(maxim < a[q[pq]]){
                    maxim = a[q[pq]];
                    val = i;
                }
        }
    }
    out << val - k + 1 << " " << val << ' ' << maxim;
    return 0;
}