Cod sursa(job #2314939)

Utilizator AlexandruPaulSirbu Alex AlexandruPaul Data 9 ianuarie 2019 11:53:39
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
const int Maxx=5e5+1;
deque <int> Q;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k;
int A[Maxx];
int st,dr,val;
int main() {
    fin>>n>>k;
    for (int i=1;i<=n;++i) fin>>A[i];
    for (int i=1;i<=n;++i){
        while (!Q.empty() && A[i]<=A[Q.back()]){
            Q.pop_back();
        }
        Q.push_back(i);
        if (i-k==Q.front()){
            Q.pop_front();
        }
        if (i>=k && val<=A[Q.front()]){
            val=A[Q.front()];
            dr=i;
            st=i-k+1;
        }
    }
    fout<<st<<" "<<dr<<" "<<val;
    return 0;
}