Cod sursa(job #1850295)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 18 ianuarie 2017 14:49:38
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <cstdio>
#include <deque>

using namespace std;

int a[500005],n,i,k;

deque <int> dq;
int pi,pf,vmin=-40000;

int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d %d\n%d", &n, &k, &a[1]);
    dq.push_back(1);
    for (i=2;i<=n;i++) {
        scanf(" %d", &a[i]);
        while (!dq.empty() && a[dq.back()]>=a[i])
            dq.pop_back();
        while (!dq.empty() && dq.front()+k<=i)
            dq.pop_front();
        dq.push_back(i);
        if (a[dq.front()]>vmin && i>=k)
            vmin=a[dq.front()],pf=i;
    }
    printf("%d %d %d", pf-k+1,pf,vmin);
    return 0;
}