Cod sursa(job #2462099)

Utilizator Tudor_PascaTudor Pasca Tudor_Pasca Data 26 septembrie 2019 19:12:38
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <utility>

using namespace std;

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

int main()
{
    deque<pair<int,int>> v;
    int n, k, i, val, prev = 0, minimax;
    int start, finish = 0;


    in >> n >> k;

    for(i = 1; i <= n; i++)
    {
        in >> val;

        while(!v.empty() && val <= v.back().first)
            v.pop_back();

        v.emplace_back(val, i);

        //cout << v.front().first << ' ' <<v.front().second << '\n';

        if(minimax < v.front().first)
        {
            start = prev + 1;
            finish = start + k - 1;
            minimax = v.front().first;
        }

        //cout << minimax.first << ' ' << minimax.second << ' ' << "start: " << start << ' ' << "finish: " << finish << '\n';

        if(v.front().second == i-k+1)
        {
            prev = v.front().second;
            v.pop_front();
        }

    }

    out << start << ' ' << finish << ' ' << minimax << '\n';

    return 0;
}