Pagini recente » Cod sursa (job #217661) | Cod sursa (job #2319387) | Cod sursa (job #1857099) | Cod sursa (job #1879493) | Cod sursa (job #2508920)
#include <stdio.h>
struct el{
int i;
int x;
};
el a[500001];
int main()
{
int jcrt,bm,jm,km,i,x,p,u,n,k;
el aux;
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;jcrt=1;
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&x);
if(x<=bm)
{
u=0;p=1;jcrt=i+1;
if(n-jcrt+1<k)
break;
}
else
{
while(u>=p && a[u].x>x)
u--;
u++; a[u].x=x; a[u].i=i;
aux=a[p];
if(i-jcrt+1>=k && aux.x>bm)
{
bm=aux.x;km=i;jm=i-k+1;
if(n-aux.i+1<k)
break;
}
if(i-aux.i+1==k)
p++;
}
}
fprintf(g,"%d %d %d",jm,km,bm);
fclose(f);
fclose(g);
}