Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cmath>
- using namespace std;
- void print_table(vector<int>& v){
- for(int i = 0; i < v.size(); i++){
- cout << "(" << i << ", " << v[i] << ")" << endl;
- }
- }
- bool is_possible_pos(vector<int>& table, int i, int j){
- for(int k = 0; k < i; k++){
- if(k == i || table[k] == j){
- return false;
- }
- if(k - table[k] == i - j){
- return false;
- }
- if(k + table[k] == i + j){
- return false;
- }
- }
- return true;
- }
- void queens(vector<int>& table, int i = 0){
- if(i == table.size()){
- cout << "solution found..." << endl;
- print_table(table);
- return;
- }
- for(int j = 0; j < table.size(); j++){
- if(is_possible_pos(table, i, j)){
- table[i] = j;
- queens(table, i + 1);
- }
- }
- }
- int main(){
- int size;
- cout << "Enter size: " << endl;
- cin >> size;
- vector<int> table(size);
- queens(table);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement