Cod sursa(job #3194972)

Utilizator catalinmarincatalinmarin catalinmarin Data 19 ianuarie 2024 20:37:54
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int v[int(5e5) + 5];
int main(){
    deque<int> dq;
    int n, k, st = -1, dr = -1 , mx = -1e9;
    fin >> n >> k;
    for (int i = 1; i <= n; i++){
        fin >> v[i];
    }
    for (int i = 1; i <= n; i++){
        if (!dq.empty() && dq.front() == i - k)
            dq.pop_front();

        while (!dq.empty() && v[dq.back()] > v[i])
            dq.pop_back();

        dq.push_back(i);

        if (!dq.empty() && i >= k && mx < v[dq.front()]){
            mx = v[dq.front()];
            st = i - k + 1;
            dr = i;
        }
    }
    fout << st << " " << dr << " " << mx;
    return 0;
}