使用先序遍历:
#include<bits/stdc++.h>
using namespace std;
int v,n;
vector<int>volum(1010);
int find(int i,int j){
    if(j>v)
        return 0;
    if(i>=n)
        return j;
    return max(find(i+1,j),find(i+1,j+volum[i]));  
}

int main(){
    ios::sync_with_stdio(false), cin.tie(nullptr),cout.tie(nullptr);
    cin >> v;
    cin >> n;
    for(int i = 0;i < n;++i){
        cin >> volum[i];
    }
    cout<<v-find(0,0);
    return 0;
}