Pagini recente » Cod sursa (job #2271951) | Cod sursa (job #1408472) | Cod sursa (job #1078973) | Cod sursa (job #928079) | Cod sursa (job #2508864)
#include <stdio.h>
struct el{
int i;
int x;
};
int main()
{
int bm,jm,km,i,x,p,u,n,k;
el aux;
el a[500001];
FILE *f,*g;
f=fopen("secventa.in","r");
g=fopen("secventa.out","w");
fscanf(f,"%d%d",&n,&k);
bm=-30001;
p=1;u=0;
for(i=1;i<k;i++)
{
fscanf(f,"%d",&x);
while(u>=p && a[u].x>x)
u--;
u++;a[u].x=x;a[u].i=i;
}
for(i=k;i<=n;i++)
{
fscanf(f,"%d",&x);
while(u>=p && a[u].x>x)
u--;
u++;a[u].x=x;a[u].i=i;
aux=a[p];
if(aux.x>bm)
{
bm=aux.x; jm=i-k+1;km=i;
}
if(i-aux.i+1==k)
p++;
}
fprintf(g,"%d %d %d",jm,km,bm);
fclose(g);
}