#include <iostream> #include <vector> using namespace std; int num; bool isPlace(int row, int col, vector<int> vi) { for(int i = 0; i < vi.size(); i++) { if(vi[i] == col || abs(i - row) == abs(vi[i] - col)) return false; } return true; } void print(int n, vector<int> vi) { //int **p = new int * [n]; //for(int i = 0; i < n; i++) // *(p + i) = new int[n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(vi[i] == j) cout<<1; else cout<<0; } cout<<endl; } cout<<endl; } void nqueen(int n, int col, vector<int> vi) { if(num == n) { print(n, vi); } else { for(int j = 0; j < num; j++) { if(isPlace(n, j, vi)) { vi.push_back(j); nqueen(n + 1, j, vi); vi.pop_back(); } } } } void main() { int n; cin>>n; num = n; vector<int> vi; nqueen(0, 0, vi); }