Cod sursa(job #2219400)

Utilizator lupulescu2001Lupulescu Vlad lupulescu2001 Data 8 iulie 2018 18:36:45
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<deque>

using namespace std;

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

deque < pair <int, int> > Deque;
int V[500003],N,K,Min,Sol;

int Comp(int Nr){
    while(!Deque.empty() && Nr<Deque.back().first){
        Deque.pop_back();
    }
}

int Cut(int i){
    while(Deque.front().second<(i-K+1))
        Deque.pop_front();
}

int main()
{
    fin>>N>>K;
    for(int i=1;i<=N;i++)
        fin>>V[i];
    for(int i=1;i<=N;i++){
        Comp(V[i]);
        Cut(i);
        Deque.push_back(make_pair(V[i],i));
        if(Deque.front().second>Min)
        {
            Sol=i;
            Min=Deque.front().first;
        }
    }
    fout<<Sol-K+1<<" "<<Sol<<" "<<Min<<'\n';
}