Cod sursa(job #313754)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 9 mai 2009 17:19:22
Problema Dame Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#include<stdlib.h>

int n,s[20];

void solutie()
{
printf("%d\n",n);
int i;
for(i=1;i<=n;i++)
	printf("%d %d\n",i,s[i]);
}

int valid(int k)
{
int i;
for(i=1;i<k;i++)
	if(s[i]==s[k]||k-i==abs(s[k]-s[i]))return 0;
return 1;
}

void back()
{
int up,k=1;
s[k]=0;
while(k)
	{
	up=0;
	while(!up&&s[k]<n)
		{
		s[k]++;
		if(valid(k))up=1;
		}
	if(up)
		if(k==n)
			{
			solutie();
			break;
			}
		else
			k++,s[k]=0;
	else
		k--;
	}
}

int main()
{
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d",&n);
if(n==2)n=1;
if(n==3)
	{
	printf("2\n1 1\n2 3");

	}
back();
return 0;
}