Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <vector>
- #define MAX_N 6
- using namespace std;
- int n,m,A[MAX_N],max_sum;
- vector<int>optim_path;
- void sum(int cur_sum,int start,vector<int>path)
- {
- path.push_back(A[start]);
- if(cur_sum<=m && cur_sum>max_sum)
- {
- max_sum=cur_sum;
- optim_path.resize(path.size());
- for(int i=0;i<path.size();i++)
- optim_path[i]=path[i];
- }
- for(int i=start+2;i<=n;i++)
- sum(cur_sum+A[i],i,path);
- }
- int main()
- {
- scanf("%d %d",&n,&m);
- for(int i=1;i<=n;i++)
- scanf("%d",&A[i]);
- for(int i=1;i<=n;i++)
- {
- vector<int>path;
- sum(A[i],i,path);
- }
- printf("%d\n",max_sum);
- for(int i=0;i<optim_path.size();i++)printf("%d ",optim_path[i]);
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement