Cod sursa(job #3252672)

Utilizator Allie28Radu Alesia Allie28 Data 30 octombrie 2024 16:54:49
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <climits>

using namespace std;

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

const int LMAX = 1005;

int main() {
    int n, i, u, v, k, x;
    fin>>n>>k;
    deque<pair<int, int>> dq;
    for (i = 1; i <= k - 1; i++) {
        fin>>x;
        while (!dq.empty() && dq.back().first > x) {
            dq.pop_back();
        }
        dq.push_back({x, i});
    }
    v = INT_MIN;
    for (i = k; i <= n; i++) {
        fin>>x;
        while (!dq.empty() && dq.back().first > x) {
            dq.pop_back();
        }
        dq.push_back({x, i});
        if (dq.front().second == i - k) dq.pop_front();
        if (v  < dq.front().first) {
            v = dq.front().first;
            u = i;
        }
    }
    fout<<u - k + 1<<" "<<u<<" "<<v;

    fin.close();
    fout.close();
    return 0;
}