Pagini recente » Cod sursa (job #3211528) | Cod sursa (job #2377869) | Monitorul de evaluare | Cod sursa (job #1799450) | Cod sursa (job #197263)
Cod sursa(job #197263)
#include<stdio.h>
#define NMAX 500001
#define DMAX 60004
int main(){
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,i,j,v[NMAX],f[DMAX]={0};
int d2,min,pmin,b,pi,pf,start;
d2=DMAX/2;min=d2;b=-d2;
scanf("%d%d",&n,&k);
for(i=0;i<n;++i)scanf("%d",&v[i]);
for(i=0;i<k;++i){
f[v[i]+d2]++;
if(min>v[i]) {min=v[i];pmin=v[i]+d2;}
}
if(b<min){b=min;pi=0;pf=k-1;}
for(i=k;i<n;++i){
start=i-k;
f[v[start]+d2]--;
f[v[i]+d2]++;
if(f[pmin]==0){
j=pmin;
while(f[j]==0) j++;
pmin=j;
min=j-d2;
}
if(min>v[i]) {min=v[i];pmin=v[i]+d2;}
if(min>b) {b=min;pi=start+1;pf=i;}
}
printf("%d %d %d",pi+1,pf+1,b);
return 0;
}