Problem #1113 - ECNU Online Judge
#include<bits/stdc++.h>
using namespace std;
int room[31];
int main(){
int V,n;
while(cin>>V){
cin>>n;
vector<int> dp(V+1);
for(int i=1;i<=n;i++) cin>>room[i];
for(int i=1;i<=n;i++){
for(int j=V;j>=room[i];j--){
dp[j]=max(dp[j],dp[j-room[i]]+room[i]);
}
}
cout<<V-dp[V]<<endl;
}
}