Pagini recente » Cod sursa (job #866582) | Cod sursa (job #2451565) | Cod sursa (job #766449) | Cod sursa (job #986884) | Cod sursa (job #438527)
Cod sursa(job #438527)
#include <stdio.h>
#include <stdlib.h>
int d[500000],a[500000];
int main()
{
FILE* f1;
FILE* f2;
f1=(fopen("secventa.in","r"));
int n,k;
fscanf(f1,"%d %d\n",&n,&k);
fscanf(f1,"%d",&a[0]);
int eleje=0,vege=0,hely,min_eleje,min_vege;
d[1]=0;
int min=-30001;
for (int i=1;i<n;i++)
{
fscanf(f1,"%d",&a[i]);
{
if (d[eleje]<=i-k)
eleje++;
while ((eleje<=vege) && (a[i]<d[vege]))
vege--;
vege++;
d[vege]=i;
if (i>=k)
if (min<a[d[eleje]])
{
min=a[d[eleje]];
min_eleje=i-k+1;
min_vege=i;
}
}
}
fclose(f1);
f2=(fopen("secventa.out","w"));
fprintf(f2,"%d %d %d",min_eleje+1,min_vege+1,min);
fclose(f2);
return 0;
}