Pagini recente » Cod sursa (job #3153173) | Cod sursa (job #393702) | Cod sursa (job #449602) | Cod sursa (job #300673) | Cod sursa (job #125132)
Cod sursa(job #125132)
#include<stdio.h>
int main ()
{
long v[300000],i,n,d,max[300000],j,poz[300000],k,o=0,min[300000];
int ok;
j=1;
max[j]=-1000000;
min[j]=1000000;
FILE *f;
f=fopen("partitie.in","r");
fscanf(f,"%ld%ld",&n,&d);
for (i=1;i<=n;++i)
{
fscanf(f,"%ld",&v[i]);
}
fclose(f);
for (i=1;i<=n;++i)
{
ok=0;
for (k=1;k<=j&&!ok;++k)
{
if ( (v[i]-max[k]>=d||max[k]-v[i]>=d) && (v[i]-min[k]>=d||min[k]-v[i]>=d) )
{
if (v[i]>max[k])
max[k]=v[i];
if (v[i]<min[k])
min[k]=v[i];
ok=1;
poz[++o]=k;
}
}
if (!ok)
{
++j;
max[j]=v[i];
min[j]=v[i];
poz[++o]=j;
}
}
f=fopen("partitie.out","w");
fprintf(f,"%ld",j);
for (i=1;i<=o;++i)
fprintf(f,"\n%ld",poz[i]);
fclose(f);
return 0;
}