AcWing 1226. 包子凑数---bool型完全背包
原题链接
中等
作者:
会飞的泡泡
,
2021-04-17 16:56:37
,
所有人可见
,
阅读 437
#include <iostream>
using namespace std;
const int maxn=1e4+10;
bool dp[maxn];
int a[110];
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
int main(){
int n;
cin>>n;
int d=0;
for(int i=1; i<=n; i++){
cin>>a[i];
d=gcd(d,a[i]);
}
if(d!=1){
cout<<"INF";
return 0;
}
dp[0]=true;
for(int i=1; i<=n; i++){
for(int j=a[i]; j<=maxn; j++){
dp[j]|=dp[j-a[i]];
}
}
int ans=0;
for(int i=0; i<=maxn; i++){
if(!dp[i])ans++;
}
cout<<ans;
return 0;
}