From 88e55fb63750eeb54a7ac3405d08340261eb3055 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 10 Mar 2021 09:21:46 +0800 Subject: Add problem 1226. --- acwing/1226.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 acwing/1226.cpp diff --git a/acwing/1226.cpp b/acwing/1226.cpp new file mode 100644 index 0000000..cbfea98 --- /dev/null +++ b/acwing/1226.cpp @@ -0,0 +1,55 @@ +#include + +int gcd(int a, int b) { + if (b == 0) + return a; + return gcd(b, a % b); +} + +int N; +int A[110]; + +const int M = 10000; + +bool f[M + 10]; + +int main() { + std::ios_base::sync_with_stdio(false); + std::cin.tie(nullptr); + + std::cin >> N; + + for (int i = 1; i <= N; i++) { + std::cin >> A[i]; + } + + int a = A[1]; + + for (int i = 2; i <= N; i++) { + a = gcd(a, A[i]); + } + + if (a != 1) { + std::cout << "INF"; + return 0; + } + + f[0] = true; + + for (int i = 1; i <= N; i++) { + for (int w = A[i]; w <= M; w++) { + f[w] = f[w] || f[w - A[i]]; + } + } + + int count = 0; + + for (int i = 1; i <= M; i++) { + if (f[i] == false) + count++; + } + + std::cout << count; + + return 0; +} -- cgit v1.2.3