Cod sursa(job #3136096)

Utilizator AlexPlesescuAlexPlesescu AlexPlesescu Data 5 iunie 2023 13:54:01
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <vector>
#include <deque>
#include <map>
#include <stack>
#include <limits.h>

using namespace std;

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

int maxim,poz1,poz2,n,k;
int main()
{
    cin >> n >> k;
    deque<int> deq;
    vector<int> v(n+1);
    for(int i=1; i <= n; i++)
        cin >> v[i];
    for(int i=1; i <= n; i++)
    {
        while(!deq.empty() and v[i] <= v[deq.back()])
        {
            deq.pop_back();
        }
        deq.push_back(i);
        if(i >= k)
        {
            if(i-deq.front() >= k)
                deq.pop_front();
            if(v[deq.front()] > maxim)
            {
                poz1 = i-k+1;
                poz2 = i;
                maxim = v[deq.front()];
            }
        }
    }
    cout << poz1 << ' ' << poz2 << ' ' << maxim;
    return 0;
}