装箱问题
作者:
logos--
,
2023-08-17 14:18:22
,
所有人可见
,
阅读 133
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int N = 20010, M = 10010;
constexpr int inf = 1E18, mod = 100003;
int n, m, a[37];
bool dp[N];
inline void Main() {
cin >> m >> n;
for (int i = 1; i <= n; i ++) {
cin >> a[i];
}
dp[0] = 1;
for (int i = 1; i <= n; i ++) {
for (int j = m; j >= a[i]; j --) {
dp[j] |= dp[j - a[i]];
}
}
int ans = 0;
for (int i = 0; i <= m; i ++) {
if(dp[i]) {
ans = m - i;
}
}
cout << ans << '\n';
}
signed main() {
cin.tie(nullptr)->sync_with_stdio(false);
int T = 1;
while(T --) Main();
return 0;
}