Pagini recente » Cod sursa (job #2840579) | Cod sursa (job #753159) | Cod sursa (job #3262768) | Cod sursa (job #1287516) | Cod sursa (job #313754)
Cod sursa(job #313754)
#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;
}