Pagini recente » Cod sursa (job #271685) | Cod sursa (job #64170) | Cod sursa (job #1188120) | Cod sursa (job #3271738) | Cod sursa (job #798112)
Cod sursa(job #798112)
#include<stdio.h>
int a[500005];
int f[60005];
int reset(int a)
{
int i;
for(i=a+1;i<=30000;i++)
if(f[i+30000])
return i;
return -1;
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,i,start,end,max,min;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
start=1;end=k;min=30001;
for(i=1;i<=k;i++)
{
if(a[i]<min)
min=a[i];
f[a[i]+30000]++;
}
max=min;start=1;end=k;
for(i=k+1;i<=n;i++)
{
f[a[i] +30000]++;
if(a[i]<min) min=a[i];
f[a[i-k]+30000]--;
if(a[i-k]==min && f[a[i-k]+30000]==0)
min=reset(min);
if(min>max)
{max=min;start=i-k;end=i;}
}
printf("%d %d %d\n",start+1,end,max);
return 0;
}