Cod sursa(job #2783884)

Utilizator MihaiZ777MihaiZ MihaiZ777 Data 15 octombrie 2021 11:33:33
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

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

deque <int> v;
int nums[500005];
int n, k;
int ans;

int main()
{
    fin >> n >> k;
    for (int i = 0; i < n; i++)
    {
        fin >> nums[i];
    }

    int down, up;
    down = 0;
    up = k - 1;
    for (int i = down; i <= up; i++)
    {
        int curr = nums[i];
        while (!v.empty() && v.back() > curr)
        {
            v.pop_back();
        }
        v.push_back(curr);

    }
    while (up < n)
    {
        if (ans < v.front())
        {
            ans = v.front();
        }
        if (nums[down] == v.front())
        {
            v.pop_front();
        }
        up++;
        down++;
        int curr = nums[up];

        while (!v.empty() && v.back() > curr)
        {
            v.pop_back();
        }
        v.push_back(curr);
    }

    fout << down << ' ' << up << ' ' << ans;

    return 0;
}