Cod sursa(job #222424)

Utilizator lamez0rBogdan Bondor lamez0r Data 22 noiembrie 2008 15:04:42
Problema Dame Scor 5
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<math.h>
int n,sol[2001][3],uz[2001];

int continuare (int k)
	{
	int i;
	for (i=1;i<=k-1;++i)
		if (abs(sol[i][2]-sol[k][2]) == abs(i-k) )
			return 0;
	return 1;
	}

void write ()
	{
	FILE *f=fopen("dame.out","w");
	int i;
	fprintf(f,"%d\n",n);
	for (i=1;i<=n;++i)
		fprintf(f,"%d %d\n",i,sol[i][2]);
	fclose(f);
	}

void back (int k)
	{
	if (k==n+1)
		write();
	else
		{
		int i,j;
		for (i=1;i<=n;++i)
			if (!uz[i])
				{
				uz[i]=1;
				sol[k][2]=i;
				if (continuare(k))
					back(k+1);
				uz[i]=0;
				}
		}
	}

int main ()
{
FILE *f=fopen("dame.in","r");
fscanf(f,"%d",&n);
fclose(f);
back (1);
return 0;
}