Cod sursa(job #253304)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 5 februarie 2009 17:33:59
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include<stdio.h>
long n,k,i,a[500005],p[500005],st,dr,s,m;
int main()
{
 freopen("secventa.in","r",stdin);
 freopen("secventa.out","w",stdout);
 scanf("%ld%ld",&n,&k);
 for(i=1;i<=n;++i)
    scanf("%ld",&a[i]);
 st=1;
 dr=0;
 s=-1000000000;
 for(i=1;i<=n;++i)
    {while(a[p[dr]]>=a[i]&&dr>=st)--dr;
     p[++dr]=i;
     if(p[st]<=i-k)++st;
     if(i>=k)if(a[p[st]]>s){s=a[p[st]];m=i;}}
 printf("%ld %ld %ld\n",m-k+1,m,s);
 return 0;
}