4 solutions

  • 1
    @ 2025-7-24 10:21:50
    #include<bits/stdc++.h>
    using namespace std;
    const int N=25;
    int w[N],ans=-1,n,m;
    void dfs(int u,int s)
    {
    	if(u==n+1)
    	{
    		if(s<=m)ans=max(ans,s);
    		return;
    	}
    	dfs(u+1,s);
    	dfs(u+1,s+w[u]);	
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)scanf("%d",&w[i]);
    	dfs(1,0);
    	printf("%d",ans);
    	return 0;
    }
    
    

    Information

    ID
    229
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    55
    Accepted
    18
    Uploaded By