#include <iostream>
#include <cstring>
using namespace std;
const int N = 110, INF = 0x3f3f3f3f;
int f[N], w[N];
int main(){
int n;
int m;
while(cin>>m){
memset(f, 0x3f, sizeof f);
cin>>n;
for(int i = 1; i <= n; i ++){
cin>>w[i];
}
f[0] = 0;
for(int i = 1; i <= n; i ++)
for(int j = m; j >= w[i]; j --){
f[j] = min(f[j], f[j-w[i]] + 1);
}
if(f[m] != INF) cout<<f[m]<<endl;
else cout<<0<<endl;
}
}
01背包

京公网安备 11010502036488号