#include <iostream> #include <cmath> using namespace std; int n,st1001; void afis(int k) { for(int i=1; i<=k; i++) { for(int j=1; j<=k; j++) if(st[i]==j) cout<<“D”; else cout<<”*”; cout<<endl; } cout<<endl; } int valid(int k) { for(int i=1; i<k; i++) if(st[k]==st[i] || abs(st[i]-st[k])==abs(i-k)) return 0; return 1; } void backt(int k) { for(int i=1; i<=n; i++) { st[k]=i; if(valid(k)) if(k==n) afis(k); else backt(k+1); } } int main() { cin>>n; backt(1); return 0; }
Citește articolul