求助大佬,改一上午了!
#include <bits/stdc++.h>
using namespace std;
int a[100001];
int mmax=-5e5;
int n,m;
void digit(int k,int ans){
if(ans>mmax) mmax=ans;
if(ans<0 || ans>m || k>n) return;
digit(k+1,ans+=a[k]);
digit(k+1,ans-=a[k]);
}
int main(){
int b;
cin>>n>>b>>m;
for(int i=1;i<=n;i++) cin>>a[i];
digit(1,b);
if(mmax<0 || mmax>m) cout<<"-1"<<endl;
else cout<<mmax<<endl;
}