From b25eccbca5d52fd5a839e62ea08b64ad93dc3191 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 28 Feb 2021 18:34:49 +0800 Subject: import(solutions): Add acwing 1209. --- works/solutions/acwing/1209.cpp | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 works/solutions/acwing/1209.cpp (limited to 'works') diff --git a/works/solutions/acwing/1209.cpp b/works/solutions/acwing/1209.cpp new file mode 100644 index 0000000..3f3ff7a --- /dev/null +++ b/works/solutions/acwing/1209.cpp @@ -0,0 +1,48 @@ +#include +#include +#include + +int number; +int count = 0; +std::array used{false}; +std::array current; + +int calc(int start, int end) { + int n = 0; + for (int i = start; i < end; i++) { + n *= 10; + n += current[i]; + } + return n; +} + +void dfs(int n) { + if (n == 9) { + for (int i = 1; i <= 7; i++) + for (int j = i + 1; j <= 8; j++) { + int a = calc(0, i); + int b = calc(i, j); + int c = calc(j, 9); + if ((number - a) * b == c) { + count++; + } + } + return; + } + + for (int i = 1; i <= 9; i++) { + if (!used[i]) { + used[i] = true; + current[n] = i; + dfs(n + 1); + used[i] = false; + } + } +} + +int main() { + std::cin >> number; + dfs(0); + std::cout << count; + return 0; +} -- cgit v1.2.3