Cod sursa(job #2937130)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 9 noiembrie 2022 23:01:25
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;

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

int main()
{
    int n, k;
    in >> n >> k;
    deque<pair<int, int>> window;
    for (int i = 0; i < k - 1; i++)
    {
        int nr;
        in >> nr;
        while (!window.empty() && window.back().first >= nr)
            window.pop_back();
        window.push_back({nr, i});
    }
    int maxx = INT_MIN;
    int res = 0;
    for (int i = k - 1; i < n; i++)
    {
        int nr;
        in >> nr;
        if (!window.empty() && window.front().second == i - k)
            window.pop_front();
        while (!window.empty() && window.back().first >= nr)
            window.pop_back();
        window.push_back({nr, i});
        nr = window.front().first;
        if (nr > maxx)
        {
            res = i;
            maxx = nr;
        }
    }
    out << res - k + 2 << ' ' << res + 1 << ' ' << maxx;
}