Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- class UserMainCode {
- static int size=-1,v=-1;
- static List<Integer> list;
- public static void main (String[] args)throws Exception {
- int a[] = {10,2,5,8};
- list = new ArrayList<>();
- fun(a,a.length,0,0,new ArrayList<>(),21);
- System.out.println(size+" "+list);
- }
- public static void fun(int a[], int i, int prev, int val, List<Integer> al, int target) {
- // System.out.println(i+" "+prev+" "+val+" "+al);
- if(val>target) {
- if(prev>=v) help(prev,al.size(),al);
- return;
- }
- if(i==0) {
- if(val<=target && val>=v) help(val,al.size(),al);
- return;
- }
- List<Integer> tmp = new ArrayList<>(al);
- if(val+a[i-1]<=target) tmp.add(a[i-1]);
- fun(a,i-1,val,val+a[i-1],tmp,target);
- fun(a,i-1,prev,val,new ArrayList<>(al),target);
- }
- public static void help(int prev, int sz, List<Integer> al) {
- if(prev==v && sz>size) {
- size=sz;
- list=al;
- }
- else if(prev>v) {
- v=prev;
- size=sz;
- list=al;
- }
- }
- }
Add Comment
Please, Sign In to add comment