Cod sursa(job #491971)

Utilizator chrissBota Cristian chriss Data 13 octombrie 2010 00:31:15
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

int a[500010],deque[500010],n,k,x,y,max,first,back,i,j;

int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);

    scanf("%d %d",&n,&k);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    first=1;
    back=0;
    for(i=1; i<=n; ++i)
    {
        while(first<=back && a[i]<a[deque[back]]) back--;
        deque[++back]=i;
        if(deque[first]==i-k) first++;
        if(i>=k)
        {
            max=a[deque[first]];
            x=i-k+1;
            y=i;
        }
    }
    printf("%d %d %d",x,y,max);
    return 0;
}