提交时间:2024-04-06 17:33:27

运行 ID: 142232

#include<bits/stdc++.h> using namespace std; int s,n,w[35]; bool used[35]; bool a(int m) { if(m==0)return 1; else { for(int i=1;i<=n;i++) { if(w[i]<=m&&used[i]==0) { used[i]=1; if(a(m-w[i]))return 1; used[i]=0; } } return 0; } } int main() { cin>>s>>n; for(int i=1;i<=n;i++)cin>>w[i]; sort(w+1,w+1+n); for(int i=0;i<=s;i++) if(a(s-i)) { cout<<i; break; } return 0; }