Pagini recente » Cod sursa (job #2211056) | Cod sursa (job #2622840) | Cod sursa (job #2056927) | Cod sursa (job #266783) | Cod sursa (job #460028)
Cod sursa(job #460028)
#include<cstdio>
FILE*f=fopen("secventa.in","r");
FILE*g=fopen("secventa.out","w");
int sol = -999999,n,k,i,front,back,v[500005],deque[500005],a,b;
int main () {
fscanf(f,"%d %d",&n,&k);
for(i=1; i<=n ;++i)
fscanf(f,"%d",&v[i]);
front = 1; back = 1;
deque[1] = 1;
a = b = 1;
for(i=2; i<=n; ++i){
while(front<=back && v[i]<=v[deque[back]])
back--;
deque[++back] = i;
if(i>=k&&v[deque[front]]>sol){
a = i-k+1; b = i;
sol = v[deque[front]];
}
if(deque[front]<=i-k+1)
front++;
}
fprintf(g,"%d %d %d",a,b,sol);
fclose(f);
fclose(g);
return 0;
}