Pagini recente » Rating Enache Alexandru (Seelow) | Statistici Maria Gheorghiu (PikaMaria27) | Monitorul de evaluare | Diferente pentru schimbare-borland intre reviziile 20 si 25 | Cod sursa (job #1682279)
#include <fstream>
using namespace std;
int sol[10000000];
int f[10000000];
ifstream cin("tablete.in");
ofstream cout("tablete.out");
int n,poz,k,semafor=1;
void afisare()
{
for(int i=1; i<=n*n; i++){cout<<sol[i]<<" ";if(i%n==0)cout<<'\n';
} cout<<'\n';semafor=0;
}
bool valid(int poz)
{
if(f[sol[poz]])
return false;
if(poz%n==k&&sol[poz]%2!=0)
return false;
if(sol[poz]<sol[poz-1]&&poz%n!=1)
return false;
return true;
}
void gen (int poz)
{if(semafor){
if(poz>n*n)afisare();
else
for(int i=1; i<=n*n; i++)
{
sol[poz]=i;
if(valid(poz))
{
f[sol[poz]]=true;
gen(poz+1);
f[sol[poz]]=false;
}
}
}
} int main()
{
cin>>n>>k;
gen(1);
return 0;
}