Cod sursa(job #1907190)
| Utilizator | Data | 6 martie 2017 18:13:09 | |
|---|---|---|---|
| Problema | Dame | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
using namespace std;
ifstream f ("dame.in");
ofstream g ("dame.out");
int c[30],d1[30],d2[30],n,nr,v[30];;
void back(int k)
{
for(int i=1;i<=n;++i)
{
if(!c[i]&&!d1[i+k]&&!d2[i-k+n+1])
{
v[k]=i;
c[i]=1;
d1[i+k]=1;
d2[i-k+n+1]=1;
if(k==n)
{
++nr;
if(nr==1) for(int j=1;j<=n;++j) g<<j<<' '<<v[j]<<'\n';
}
else if(nr==0) back(k+1);
c[i]=0;
d1[i+k]=0;
d2[i-k+n+1]=0;
}
}
}
int main()
{
f>>n;
back(1);
return 0;
}
