Cod sursa(job #125162)

Utilizator bacerandreiBacer Andrei bacerandrei Data 20 ianuarie 2008 11:47:45
Problema Partitie Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 9-a Marime 0.74 kb
#include<fstream.h>
#include<math.h>
long long n,d,pas,a[300000],uz[300000],v[300000],i,j,gasit,k,o;
int main()
{
  ifstream f("partitie.in");
  ofstream g("partitie.out");
   f>>n>>d;
  for(i=1;i<=n;i++)
   f>>a[i];
  pas=1;
  while(k<n)
   {
    for(i=1;i<=n;i++)
     if(a[i]!=0)
      {
       v[o]=a[i];
       o++;
       k++;
       a[i]=0;
       uz[i]=pas;
       i=n+1;
      }
    for(i=1;i<=n;i++)
     if(a[i]!=0)
      {
       gasit=0;
	for(j=0;j<o;j++)
	 if(abs(a[i]-v[j])<d)
	  gasit=1;
	if(gasit==0)
	 {
	  v[o]=a[i];
	  o++;
	  a[i]=0;
	  uz[i]=pas;
	  k++;
	 }
      }
    pas++;
    for(i=0;i<o;i++)
     v[i]=0;
   }
   g<<pas-1<<"\n";
    for(i=1;i<=n;i++)
     g<<uz[i]<<"\n";
   return 0;
}