Cod sursa(job #1639758)

Utilizator bob123bobelus bob bob123 Data 8 martie 2016 13:54:37
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

int in,sf,nr,j,Max,Front,Back,n,k,i,a[500001],dq[500001];
int main()
{
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    scanf("%d%d", &n, &k);
    Front=1;Back=0;
    for(i=1;i<=n;++i)
        scanf("%d", &a[i]);
    for(i=1;i<=n;++i){
        while(Front<=Back&&a[i]<a[dq[Back]])
            --Back;
        dq[++Back]=i;
        if(dq[Front]==i-k)
            ++Front;
        if(a[dq[Front]]>Max&&i>=k)
            {
                Max=a[dq[Front]];
                in=i-k+1;
                sf=i;
            }
    }
    printf("%d %d %d", in, sf, Max);
    return 0;
}