Pagini recente » Cod sursa (job #2685780) | Cod sursa (job #155659) | Cod sursa (job #931567) | Cod sursa (job #201643) | Cod sursa (job #227527)
Cod sursa(job #227527)
#include <cstdio>
FILE *in, *out;
int x[300002],v[300000],c[300000],n,d,max=-32000;
int abs (int x)
{
if (x<0)
return -x;
return x;
}
int main()
{
in = fopen ("partitie.in", "r");
out = fopen ("partitie.out", "w");
fscanf (in, "%d%d", &n, &d);
int i;
for (i=1; i<=n; i++)
fscanf (in, "%d", &x[i]),v[i]=1;
int gata=0,j;
while (!gata)
{
gata=1;
for (i=1; i<n; i++)
for (j=i+1; j<=n; j++)
if (v[i]==v[j])
if (abs (x[i]-x[j])<d)
{
v[j]++,gata=0;
if (v[j]>max)
max=v[j];
}
}
fprintf (out,"%d\n",max);
for (i=1; i<=n; i++)
fprintf (out,"%d\n",v[i]);
fclose (in);
fclose (out);
return 0;
}