Cod sursa(job #125666)

Utilizator lamez0rBogdan Bondor lamez0r Data 20 ianuarie 2008 15:44:49
Problema Partitie Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<mem.h>

int main ()
{
long j,v[10000],i,n,d,a[100][100],c=1,l,grupa[10000],poz=1;
int ok;
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);
grupa[1]=1;
memset(a,-1,sizeof(a));
a[1][1]=v[1];
for (i=2;i<=n;++i)
    {
    ok=0;
    for (j=1;j<=c&&!ok;++j)
	{
	ok=0;
	for (l=1;l!=-1&&!ok;++l)
	    {
        printf("%ld",a[j][l]);     
        if (a[j][l]-v[i]<=d||v[i]-a[j][l]<=d)
	       ok=1;
        }     
	if (!ok)
	   {
	   j=c+1;
	   a[l][j]=v[i];
	   grupa[++poz]=j;
	   }
	}
    if (ok)
       {
       a[1][++c]=v[i];
       grupa[++poz]=c;
       grupa[1]++;
       }
    }

f=fopen("partitie.out","w");
for (i=1;i<=poz;++i)
    fprintf(f,"%ld\n",grupa[i]);
fclose(f);
return 0;
}