Cod sursa(job #2297575)
| Utilizator | Data | 6 decembrie 2018 03:28:54 | |
|---|---|---|---|
| Problema | Problema Damelor | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.79 kb |
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int st[13],n,sol=0;
bool verifica(int niv)
{
for(int i=0;i<niv;++i)
if(st[i]==st[niv] || i-st[i]==niv-st[niv] || i+st[i]==niv+st[niv]) return 0;
return 1;
}
void backtr(int niv)
{
for(int i=0; i<n; ++i)
{
st[niv]=i;
if(verifica(niv))
{
if(niv<n-1)
backtr(niv+1);
else
{
if(sol==0)
{
for(int i=0; i<n; ++i)
g<<st[i]+1<<' ';
g<<'\n';
}
++sol;
}
}
}
}
int main()
{
f>>n;
backtr(0);
g<<sol<<'\n';
return 0;
}
