Cod sursa(job #55193)
Utilizator | Data | 26 aprilie 2007 18:40:17 | |
---|---|---|---|
Problema | Dame | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <fstream>
#include <math.h>
using namespace std;
int st[1001],n,sol;
void tipar() {
ofstream fout("dame.out");
for(int i=1;i<=n;i++)
fout<<i<<" "<<st[i]<<endl;
fout.close();
};
void back(int k) {
int i,j,ok;
if(k==n+1) { tipar(); sol=0; }
else for(i=1;i<=n && sol;i++) {
ok=1;
for(j=1;j<=k-1 && ok ;j++)
if(st[j]==i || abs(j-k)==abs(st[j]-i) ) ok=0;
if(ok) { st[k]=i; back(k+1); }
};
};
int main() {
ifstream fin("dame.in");
fin>>n;
sol=1;
back(1);
return 0;
}