Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #3364521) | Borderou de evaluare (job #3364519) | Cod sursa (job #3364516) | Cod sursa (job #3365791)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n, p[15], c[20],dp[30],ds[30];
int sol;
void back( int linie)
{
if(linie==n+1)
{
sol++;
if(sol==1)
for(int i=1;i<=n; i++)
fout<<p[i]<<" ";
fout<<'/n';
return;
}
for(int col =1; col<=n; col++)
if(c[col]) continue;
if(dp[n+1+linie-col])continue;
if(ds[linie+col]) continue;
p[linie]=col;
c[col]=1;
dp[n+1+linie-col]=1;
ds[linie+col]=1;
back(linie+1);
c[col]=0;
dp[n+1+linie-col]=0;
ds[linie+col]=0;
int main()
{
fin>>n;
back(1);
fout<<sol<<'/n';
return 0;
}