diff options
| author | crupest <crupest@outlook.com> | 2021-03-10 09:21:46 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-03-10 09:21:46 +0800 | 
| commit | cd58d7e2703b9d96e7466ae77502e29f22963891 (patch) | |
| tree | c97d2dd1fd798cfb36197524af17d639ce564216 /works/solutions/acwing | |
| parent | c4975c854cb5365872c4c9707deb659e0d2634eb (diff) | |
| download | crupest-cd58d7e2703b9d96e7466ae77502e29f22963891.tar.gz crupest-cd58d7e2703b9d96e7466ae77502e29f22963891.tar.bz2 crupest-cd58d7e2703b9d96e7466ae77502e29f22963891.zip  | |
import(solutions): Add problem 1226.
Diffstat (limited to 'works/solutions/acwing')
| -rw-r--r-- | works/solutions/acwing/1226.cpp | 55 | 
1 files changed, 55 insertions, 0 deletions
diff --git a/works/solutions/acwing/1226.cpp b/works/solutions/acwing/1226.cpp new file mode 100644 index 0000000..cbfea98 --- /dev/null +++ b/works/solutions/acwing/1226.cpp @@ -0,0 +1,55 @@ +#include <iostream> + +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; +}  | 
