Cod sursa(job #2658908)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 15 octombrie 2020 13:50:53
Problema Secventa Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
#include <deque>
#define nMax 501024

using namespace std;

int n,k,v[nMax];

int main() {
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    int i,sol,solpos;
    deque <int> q;
    scanf("%d%d",&n,&k);
    for(sol=-32768,solpos=0,i=1;i<=n;++i) {
        scanf("%d",&v[i]);
        if(!q.empty()&&i-q.front()>=k) {
            q.pop_front();
        }
        for(;!q.empty()&&v[q.back()]>v[i];q.pop_back());
        q.push_back(i);
        if(i>=k&&v[q.front()]>sol) {
            sol=v[q.front()];
            solpos=i;
        }
    }
    printf("%d %d %d",solpos-k+1,solpos,sol);
    return 0;
}