Cod sursa(job #1426197)

Utilizator CodrutLemeniCodrut Lemeni CodrutLemeni Data 29 aprilie 2015 08:54:57
Problema Secventa Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include <stdlib.h>

int n,k,v[500000],deque[500000],front,back;
int i;
int bmax=-5000000,imax;

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",&v[i]);
    }
    front=1;
    back=0;
    for(i=1;i<=n;i++){
        while(front<=back && v[deque[back]]>v[i]){
            back--;
        }
        deque[++back]=i;
        if(deque[front]==i-k){
            front++;
        }

        if(v[deque[front]]>bmax){
            bmax=v[deque[front]];
            imax=deque[front];
        }
    }
    printf("%d %d %d",imax,imax+k-1,bmax);
    return 0;
}