Cod sursa(job #2658911)

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

using namespace std;

struct Nr {
    int pos,val;
};

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