Cod sursa(job #273250)

Utilizator xtremespeedzeal xtreme Data 8 martie 2009 13:11:45
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<iostream.h>
#include<stdio.h>

int n,k,i,front=1,back,max=0,deque[500001],imax,A[500001];


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]);
    for(i=1;i<=n;i++)
          {
          while(front<=back && A[i]<=A[deque[back]])
                           back--;
          deque[++back]=i; 
          if(deque[front]==i-k)
                               front++;
          if(i>=k)
                  if(A[deque[front]]>max)
                         {max=A[deque[front]];
                         imax=deque[front];}
          }
    printf("%d %d %d",imax,imax+k-1,max);
    return 0;
    }