Cod sursa(job #2146938)

Utilizator bogdi1bogdan bancuta bogdi1 Data 28 februarie 2018 12:39:02
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
deque<int> dq;
int v[500005];
int main()
{   freopen("secventa.in", "r",stdin);
    freopen("secventa.out", "w",stdout);
    int n,k,i,maxx;
    scanf("%d%d", &n, &k);
    scanf("%d", &v[1]);
    dq.push_back(v[1]);
    for(i=2; i<=k; i++){
        scanf("%d", &v[i]);
        while(!dq.empty() && dq.back()>v[i])
            dq.pop_back();
        dq.push_back(v[i]);
    }
    maxx=dq.front();
    for(i=k+1; i<=n; i++){
        scanf("%d", &v[i]);
        if(dq.front()==v[i-k])
            dq.pop_front();
        while(!dq.empty() && dq.back()>=v[i])
            dq.pop_back();
        dq.push_back(v[i]);
        maxx=max(maxx, dq.front());
    }
    printf("%d", maxx);
    return 0;
}