Pagini recente » Cod sursa (job #2943040) | Cod sursa (job #333709) | ojiprep1 | Cod sursa (job #502068) | Cod sursa (job #231356)
Cod sursa(job #231356)
#include <stdio.h>
#include <stdlib.h>
int aux[10000];
long a[100][100],n,k;
void back(int i, int j);
void done();
int main()
{
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%ld %ld", &n, &k);
back(1,1);
return 0;
}
void back(int i,int j)
{
for(int p=1;p<=n*n;p++)
if(aux[p]==0&&p>a[i][j-1])
{
if(j==k)
{
if(p%2==0)
{
aux[p]=1;
a[i][j]=p;
if(i==n&&j==n)
done();
if(j<n)
back(i,j+1);
else
back(i+1,1);
aux[p]=0;
}
}
else
{
aux[p]=1;
a[i][j]=p;
if(i==n&&j==n)
done();
if(j<n)
back(i,j+1);
else
back(i+1,1);
aux[p]=0;
}
}
}
void done()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
printf("%ld ", a[i][j]);
printf("\n");
}
exit(1);
}