Cod sursa(job #1803139)

Utilizator geni950814Geni Geni geni950814 Data 11 noiembrie 2016 00:12:58
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <vector>
#include <stdlib.h>
#include <fstream>
using namespace std;

ifstream in("damesah.in");
ofstream out("damesah.out");

void back(int pos, int n, vector<bool>& used, vector<int>& result, int& count) {
  if (pos == n) {
    if(count == 0) {
      for(int i : result) {
        out << i << " ";
      }
      out << "\n";
    }
    count ++;
    return; 
  }
  for (int i = 1; i <= n; i++) {

    if (!used[i]) {
      bool valid = true;
      for (int k = 0; k < pos; k++) {
        if (abs(pos - k) == abs(i - result[k])) {
          valid = false;
        }
      }
      if (valid) {
        result.push_back(i);
        used[i] = true;
        back(pos + 1, n, used, result, count);
        result.pop_back();
        used[i] = false;
      }
    }
  }
}

int main() {
  int N;
  in >> N;
  vector<int> result;
  vector<bool> used(14);
  int count = 0;
  back(0, N, used, result, count);
  out << count;
  return 0;
}