包子凑数
类似完全背包求方案数,再加上点数论知识,裴蜀定理。
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N=300000;
bool f[N];
int a[120];
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n,n0=0,n1=0; cin>>n;f[0]=1;int g;for(int i=1;i<=n;i++) cin>>a[i];g=a[1];for(int i=1;i<=n;i++){g=__gcd(g,a[i]);for(int j=a[i];j<N;j++)f[j]|=f[j-a[i]];}int flag=0,cnt=0;for(int i=1;i<N;i++)if(!f[i]) cnt++;if(g!=1){cout<<"INF";return 0;}cout<<cnt;return 0;
}