Pagini recente » Cod sursa (job #1607668) | Cod sursa (job #1432973) | Cod sursa (job #2401519) | Cod sursa (job #2183867) | Cod sursa (job #1598106)
#include <stdio.h>
#define MAX 500001
int Vector[MAX],Deque[MAX];
int main(void)
{
int numar=-30001,head=1,tail=0;
long N,K,i,poz_inceput=-30001,poz_terminat=-30001;
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld%ld",&N,&K);
for ( i = 1 ; i <= N ; i++)
scanf("%d",&Vector[i]);
for ( i = 1 ; i <= N ; i++)
{
while(head <= tail && Vector[i] <= Vector[Deque[tail]])
tail--;
Deque[++tail] = i;
if(i-K == Deque[head])
head++;
if(i >= K)
{
if((numar < Vector[Deque[head]]) || (numar <= Vector[Deque[head]] &&poz_inceput <= i-K))
{
numar = Vector[Deque[head]];
poz_inceput= i-K+1;
poz_terminat=i;
}
}
}
printf("%ld %ld %d",poz_inceput,poz_terminat,numar);
return 0;
}