Cod sursa(job #227527)

Utilizator cristiprgPrigoana Cristian cristiprg Data 4 decembrie 2008 20:34:16
Problema Partitie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#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;
}