Pagini recente » Cod sursa (job #2420735) | Cod sursa (job #2063568) | Cod sursa (job #150089) | Cod sursa (job #2235474) | Cod sursa (job #2452592)
//ALEXANDRU MICLEA
#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>
using namespace std;
#include <fstream>
ifstream cin("damesah.in"); ofstream cout("damesah.out");
bool used[15];
int ans[15];
bool diag1[30];
bool diag2[30];
int n, c=0;
int backt(int q) {
if (q > n) {
c++;
if (c == 1) {
for (int i = 1; i <= n; i++) {
cout << ans[i] << " ";
}
cout << '\n';
}
}
for (int i = 1; i <= n; i++) {
if (!used[i] && !diag1[q-i+n] && !diag2[i+q]) {
used[i] = true;
diag1[q-i+n] = true;
diag2[i + q] = true;
ans[q] = i;
backt(q+1);
used[i] = false;
diag1[q-i+n] = false;
diag2[i + q] = false;
}
}
}
int main() {
cin >> n;
backt(1);
cout << c;
return 0;
}