Pagini recente » Cod sursa (job #2660270) | Istoria paginii runda/oni17_11_12_z1/clasament | Cod sursa (job #2441813) | Cod sursa (job #696457) | Cod sursa (job #1766380)
#include <iostream>
#include<cmath>
#include<string.h>
using namespace std;
int x[100],n;
void init(int k)
{
x[k]=0;
}
int exista (int k)
{return x[k]<n;
}
int cont (int k)
{int ok,i;
ok=1;
for(i=1;i<=k-1;i++)
if(x[k]==x[i] || abs(x[k]-x[i])==(k-i))ok=0;
return ok;
}
int solutie(int k)
{return k==n;
}
void tipar (int k)
{int i;
for(i=1;i<=k;i++)
{cout<<"coloana "<<x[i]<<' ';}
cout<<endl;
}
void bkt()
{int k;k=1;init(k);
while(k>0)
if (exista(k)){x[k]=x[k]+1;
if(cont(k)) if (solutie(k)) tipar(k);
else{k=k+1;init(k);}
}
else k=k-1;
}
int main()
{
cin>>n;
bkt();
}