Cod sursa(job #1839886)
Utilizator | Data | 3 ianuarie 2017 16:16:23 | |
---|---|---|---|
Problema | Problema Damelor | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.19 kb |
#include <fstream>
using namespace std;
short int nr,n,m[14],d[14],s[14],ok,j;
ifstream f("damesah.in");
ofstream g("damesah.out");
void dame(int n, int index)
{
if(index==n)
{
nr++;
if(nr==1)
{
for(int i=0; i<n; i++)
g<<s[i]<<" ";
g<<"\n";
}
}
else
{
for(int i=1; i<=n; i++)
{
ok=0;
for(j=0;j<index;j++)
{
if(j-s[j]==index-i)
{
ok=1;
break;
}
}
if(ok==0)
{
for(j=0;j<index;j++)
{
if(j+s[j]==index+i)
{
ok=1;
break;
}
}
}
if(m[i]==0 && ok==0)
{
m[i]=1;
s[index]=i;
dame(n, index+1);
m[i]=0;
}
}
}
}
int main()
{
f>>n;
dame(n,0);
g<<nr;
f.close();
g.close();
return 0;
}