Pagini recente » Cod sursa (job #917130) | Cod sursa (job #1122011) | Cod sursa (job #170514) | Cod sursa (job #433612) | Cod sursa (job #34237)
Cod sursa(job #34237)
#include <stdio.h>
#include <stdlib.h>
#define nmax 500001
struct elem {int x,poz;};
elem a[nmax];
int in[nmax];
int compare(const void *a,const void *b)
{
return (*(elem*)b).x-(*(elem*)a).x;
}
FILE *f,*g;
int main()
{
long n,i,j,k,fin,y,x,max,ok,l,imax,w;
f=fopen("secventa.in","rt");
g=fopen("secventa.out","wt");
fscanf(f,"%ld %ld\n",&n,&k);
for (i=1;i<=n;i++)
{
fscanf(f,"%d",&in[i]);
a[i].x=in[i];
a[i].poz=i;
}
qsort(a+1,n,sizeof(elem),compare);
fin=n;
if (fin>150)
fin=150;
max=-30001;
w=1;
for (i=1;i<=fin&&w;i++)
{
y=a[i].poz;
for (j=y-k+1;j<=y&&w;j++)
if (j+k-1<=n)
{
x=j+k-1;
ok=1;
for (l=j;l<=x;l++)
if (in[l]<a[i].x)
{
ok=0;
break;
}
if (ok)
{
max=a[i].x;
imax=j;
w=0;
}
}
else
break;
}
fprintf(g,"%ld %ld %ld\n",imax,imax+k-1,max);
fcloseall();
return 0;
}