AcWing 1226. 包子凑数
原题链接
中等
作者:
chenmoo
,
2025-04-05 17:43:14
· 吉林
,
所有人可见
,
阅读 1
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 110;
int a[110];
bool dp[10010];
int gcd(int a, int b) {
return b != 0 ? gcd(b, a % b) : a;
}
signed main() {
int n;
cin >> n;
int d = 0;
for (int i = 1;i <= n;i++) {
cin >> a[i];
d = gcd(d, a[i]);
}
dp[0] = true;
for (int i = 1;i <= n;i++) {
for (int j = a[i];j <= 10000;j++) {
dp[j] = dp[j] || dp[j - a[i]];
}
}
int ans = 0;
if (d != 1)cout << "INF";
else {
for (int i = 1;i <= 10000;i++) {
if (!dp[i])ans++;
}
cout << ans;
}
return 0;
}