Cod sursa(job #2743456)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 22 aprilie 2021 23:54:09
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
//Ilie Dumitru
#include<cstdio>
#include<deque>

struct element
{
    int index, val;
};

int main()
{
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    int N, K, i, x, maxim, poz;
    std::deque<element> dq;
    element e;
    scanf("%d%d", &N, &K);
    for(i=0;i<K;++i)
    {
        scanf("%d", &x);
        while(!dq.empty() && dq.front().val>x) dq.pop_front();
        e.index=i;
        e.val=x;
        dq.push_front(e);
    }
    maxim=dq.back().val;
    poz=K-1;
    for(;i<N;++i)
    {
        scanf("%d", &x);
        while(!dq.empty() && dq.front().val>x) dq.pop_front();
        while(!dq.empty() && dq.back().index+K<=i) dq.pop_back();
        e.index=i;
        e.val=x;
        dq.push_front(e);
        if(dq.back().val>maxim)
            maxim=dq.back().val, poz=i;
    }
    fclose(stdin);
    printf("%d %d %d", maxim, poz-K+2, poz+1);
    fclose(stdout);
    return 0;
}