我的程序
#include<bits/stdc++.h>
using namespace std;
const int MaxN=1005;
int a[MaxN];
int b[MaxN];
int n,c;
long long ans=0;
void search(int idx,long long vl)
{
if(vl>c)
{
return ;
}
if(vl+b[idx-1]<=c)
{
ans=max(ans,vl+b[idx-1]);
return ;
}
ans=max(ans,vl);
for(int i=1;i<idx;i++)
{
search(i,vl+a[i]);
}
}
int main()
{
cin>>n>>c;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=b[i-1]+a[i];
if(b[i]==c){cout<<c;return 0;}
}
search(n+1,0);
cout<<ans<<"\n";
return 0;
}
和第一篇题解除了变量名几乎一样 但会WA4个点
但题解能A