coder0687

Untitled

Mar 27th, 2022 (edited)
1,159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.18 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. class UserMainCode {
  5.     static int size=-1,v=-1;
  6.     static List<Integer> list;
  7.     public static void main (String[] args)throws Exception {
  8.         int a[] = {10,2,5,8};
  9.         list = new ArrayList<>();
  10.         fun(a,a.length,0,0,new ArrayList<>(),21);
  11.         System.out.println(size+" "+list);
  12.     }
  13.     public static void fun(int a[], int i, int prev, int val, List<Integer> al, int target) {
  14.         // System.out.println(i+" "+prev+" "+val+" "+al);
  15.         if(val>target) {
  16.             if(prev>=v) help(prev,al.size(),al);
  17.             return;
  18.         }
  19.         if(i==0) {
  20.             if(val<=target && val>=v) help(val,al.size(),al);
  21.             return;
  22.         }
  23.         List<Integer> tmp = new ArrayList<>(al);
  24.         if(val+a[i-1]<=target) tmp.add(a[i-1]);
  25.         fun(a,i-1,val,val+a[i-1],tmp,target);
  26.         fun(a,i-1,prev,val,new ArrayList<>(al),target);
  27.     }
  28.     public static void help(int prev, int sz, List<Integer> al) {
  29.         if(prev==v && sz>size) {
  30.             size=sz;
  31.             list=al;
  32.         }
  33.         else if(prev>v) {
  34.             v=prev;
  35.             size=sz;
  36.             list=al;
  37.         }
  38.     }
  39. }
  40.  
Add Comment
Please, Sign In to add comment