Pagini recente » Cod sursa (job #998075) | Cod sursa (job #1218269) | Cod sursa (job #1238779) | Cod sursa (job #1978031) | Cod sursa (job #1875668)
#include <fstream>
#include <vector>
#include <cmath>
#include <stdlib.h>
using namespace std;
ifstream ("damesah.in")
ofstream ("damesah.out")
int n;
vector<int> t; //solutiile;
bool valid(int k)
{
for (int i=1;i<k;i++)
{
if(t[i]==t[k] || abs(t[k]-t[i])==(k-i)) return false;
}
return true;
}
bool solutie(int k)
{
if (k==n) return true;
return false;
}
void afisare()
{
cout<<n<<'\n';
for (int i=1;i<=n;i++)
{
cout<<i<<' '<<t[i]<<'\n';
}
exit(0);
}
void BK(int k)
{
for (int i=1;i<=n;i++)
{
t[k]=i;
if (valid(k))
{
if (solutie(k)) afisare();
else BK(k+1);
}
}
}
main()
{
cin>>n;
t.resize(n);
t[n-1]=0;
BK(1);
}