Pagini recente » Cod sursa (job #150512) | Cod sursa (job #454861) | Cod sursa (job #673073) | Cod sursa (job #2595369) | Cod sursa (job #1598182)
#include <stdio.h>
#define MAX 500001
long Vector[MAX],Deque[MAX];
int main()
{
long numar=-30001,head=1,tail=0;
long N,K,i,poz_inceput=-30001,poz_terminat=0;
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld%ld",&N,&K);
for ( i = 1 ; i <= N ; i++)
scanf("%ld",&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 %ld\n",poz_inceput,poz_terminat,numar);
return 0;
}