diff --git a/problem/P1219/P1219.cpp b/problem/P1219/P1219.cpp new file mode 100644 index 00000000..9d2e1afa --- /dev/null +++ b/problem/P1219/P1219.cpp @@ -0,0 +1,33 @@ +#include + +using namespace std; + +int n, ans, a[200], b[200], dg[200], udg[200]; + +void dfs(int i) { + if (i > n) { + if (ans < 3) { + for (int j = 1; j <= n; j++) { + cout << a[j] << ' '; + } + cout << endl; + } + ans++; + return; + } + for (int j = 1; j <= n; j++) { + if (!b[j] && !dg[i + j] && !udg[n - j + i]) { + a[i] = j; + b[j] = dg[i + j] = udg[n - j + i] = true; + dfs(i + 1); + b[j] = dg[i + j] = udg[n - j + i] = false; + } + } +} + +int main() { + cin >> n; + dfs(1); + cout << ans << endl; + return 0; +}