Pagini recente » Cod sursa (job #157720) | Cod sursa (job #948130) | Cod sursa (job #855886) | Cod sursa (job #880767) | Cod sursa (job #228262)
Cod sursa(job #228262)
#include<stdio.h>
#define Dim 500001
int q[Dim], x, max ;
long ind[Dim] ;
long poz, pr, ul, n, k, i, p ;
int main()
{
freopen("secventa.in","r",stdin) ;
freopen("secventa.out","w",stdout) ;
scanf("%ld %ld",&n,&k) ;
// calculez minimul din primele k:
max = 31000 ; poz = 1 ;
for (i=1 ; i<=k ; i++)
{
scanf("%d",&x) ;
if (max > x) { max = x ; p = i ; }
}
pr = ul = 0 ;
q[ul] = max ; ind[ul] = p ;
// calculez restul:
for ( ; i<=n; i++)
{
scanf("%d",&x) ;
while ((q[ul] >= x) && (pr<=ul)) ul-- ;
q[++ul] = x ;
ind[ul] = i ;
if (ind[pr] <= i-k) pr++ ;
if (max < q[pr]) {max = q[pr] ;poz = ind[pr]; }
}
printf("%ld %ld %d\n",poz,poz+k-1,max) ;
return 0 ;
}