Pagini recente » Cod sursa (job #2387425) | Cod sursa (job #1106960) | Cod sursa (job #3237340) | Cod sursa (job #1255785) | Cod sursa (job #474666)
Cod sursa(job #474666)
#include <stdio.h>
FILE*f = fopen("secventa.in","r");
FILE*g = fopen("secventa.out","w");
int n,k,front,back,i,max,b1,b2;
int a[500010],d[500010];
int main(){
max=-30001;
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++){
fscanf(f,"%d",&a[i]);
}
front=1,back=0;
for(i=1;i<=n;i++){
while(front<=back && a[i]<=a[d[back]])
back--;
d[++back]=i;
if(d[front] == i-k)
front++;
if(i>=k && a[d[front]]>max){
max=a[d[front]];
b1 = d[front];
b2 = d[back];
}
}
fprintf(g,"%d %d %d",b1,b2,max);
fclose(f), fclose(g);
return 0;
}