#include<bits/stdc++.h>
using namespace std;
struct dp{bool p;int mi;}a[10000010];
int b[100010];
int maxx=0;
int main()
{
int N,K;
scanf("%d %d",&K,&N);
for(int i=1;i<=N;i++)
{
scanf("%d",&b[i]);
maxx=max(maxx,b[i]);
}
for(int i=1;i<=maxx*K+1;i++)
{
a[i].p =false;
a[i].mi =999999999;
}
a[0].p =true;
a[0].mi =0;
for(int i=1;i<=N;i++)
{
for(int j=b[i];j<=maxx*K;j++)
{
if(a[j-b[i]].p ==true&&a[j-b[i]].mi !=K)
{
a[j].p =true;
a[j].mi =min(a[j].mi,a[j-b[i]].mi +1);
}
}
}
for(int i=1;i<=maxx*K+1;i++)
{
if(a[i].p ==false)
{
printf("%d",i-1);
return 0;
}
}
}
luogu2725/USACO3.1:Stamps
最新推荐文章于 2020-12-08 16:21:22 发布