Pagini recente » Cod sursa (job #1950751) | Cod sursa (job #2982327) | Cod sursa (job #2625010) | Cod sursa (job #679769) | Cod sursa (job #330279)
Cod sursa(job #330279)
#include <stdio.h>
FILE *f,*g;
long n,k,i,st,dr,rez,poz,a[500000],q[500000];
int main(){
f=fopen("secventa.in","r");
g=fopen("secventa.out","w");
fscanf(f,"%ld%ld",&n,&k);
for (i=1;i<=n;i++)
fscanf(f,"%ld",&a[i]);
rez=0;
st=1;dr=0;
for (i=1;i<=k-1;i++){
while (dr>=st&&a[i]<=a[q[dr]]) dr--;
dr++;
q[dr]=i;
}
for (i=k;i<=n;i++){
while (st<=dr&&a[i]<=a[q[dr]]) dr--;
dr++;
q[dr]=i;
while (st<=dr&&q[st]<i-k+1) st++;
if (a[q[st]]>rez){
rez=a[q[st]];
poz=i;
}
}
fprintf(g,"%ld %ld %ld\n",poz-k+1,poz,rez);
fclose(f);
fclose(g);
return 0;
}