Cod sursa(job #1880017)
Utilizator | Data | 15 februarie 2017 12:50:49 | |
---|---|---|---|
Problema | Problema Damelor | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.85 kb |
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,uz[20],ok,x[20],nr,uzdp[50],uzds[50];
void afisare()
{
for (int i=1;i<=n;i++)
g<<x[i]<<' ';
g<<'\n';
}
void bkt(int k)
{
if (k>n)
{
nr++;
if (ok==0)
{
ok=1;
afisare();
}
}
else
{
for (int i=1;i<=n;i++)
{
if (!uz[i] && !uzdp[n-i+k] && !uzds[i+k])
{
uz[i] = 1;
uzdp[n-i+k] = 1;
uzds[i+k] = 1;
x[k] = i;
bkt(k+1);
uz[i] = 0;
uzdp[n-i+k] = 0;
uzds[i+k] = 0;
}
}
}
}
int main()
{
f>>n;
bkt(1);
g<<nr;
return 0;
}