Cod sursa(job #356036)
Utilizator | Eugenie Daniel Posdarascu eudanip | Data | 13 octombrie 2009 12:15:17 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<stdio.h>
long j,i,x[500001],t,in,sf,sec,k,n,poz;
int a[500001],v[500001],max=-30001;
int main ()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld%ld",&n,&k);
in=1;
sf=1;
sec=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(i-k+1>x[in])
in++;
t=sf;
if(i>1)
{
while(v[t]>a[i])
{
t--;
if(t<in)
break;
}
}
t++;
sf=t;
v[sf]=a[i];
x[sf]=i;
if(v[in]>max)
{
if(i>=k)
{ max=v[in];
poz=x[i];
}
}
}
printf("%ld %ld %d",poz-k+1,poz,max);
return 0;
}