Maxim_Leo

Untitled

May 29th, 2022
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. class DList<T1, T2> {
  2.  
  3. private ArrayList<T1> m_arr;
  4. private ArrayList<ArrayList<T2>> m_list_arr;
  5.  
  6.  
  7. public java.util.ArrayList<T1> getM_arr() {
  8. return m_arr;
  9. }
  10. public ArrayList<ArrayList<T2>> getM_list_arr(){
  11. return m_list_arr;
  12. }
  13.  
  14. public DList() {
  15. m_arr = new ArrayList<>();
  16. m_list_arr = new ArrayList<>();
  17. }
  18.  
  19. public void addList(T1 list_id, ArrayList<T2> arr) {
  20. if (!m_arr.contains(list_id)) //if the id is not the list1
  21. {
  22. m_arr.add(list_id); //add id to the list1
  23. m_list_arr.add(arr); //add the list to the m_list_arr
  24. } else {
  25. int ind = m_arr.indexOf(list_id); //if the id is already int the list1, find index of that id
  26.  
  27. m_list_arr.add(ind, arr); //add the list to the respective list in m_list_arr
  28. }
  29. }
  30.  
  31. public void deleteList(int i) {
  32. if (i >= 0) {
  33. if (i < m_arr.size()) {
  34. m_arr.remove(i);
  35. m_list_arr.remove(i);
  36. } else {
  37. System.out.println("Индекс должен быть меньше чем " + m_arr.size());
  38. }
  39. } else {
  40. System.out.println("Индекс не должен быть отрицательным");
  41. }
  42. }
  43.  
  44. public void deleteList(T1 id) {
  45. if (m_arr.contains(id)) //if m_arr contains the id, find its index and delete it
  46. {
  47. int ind = m_arr.indexOf(id);
  48. m_arr.remove(ind);
  49. m_list_arr.remove(ind);
  50. } else {
  51. System.out.println("Здесь нет такого элемента");
  52. }
  53.  
  54. }
  55.  
  56. public ArrayList<T2> getList(int i) {
  57. ArrayList<T2> temp_list = null;
  58.  
  59. if (i >= 0) {
  60. if (i < m_arr.size()) {
  61. temp_list = m_list_arr.get(i);
  62. } else {
  63. System.out.println("Индекс должен быть меньше чем " + m_arr.size());
  64. }
  65. } else {
  66. System.out.println("Индекс должен быть неотрицательным");
  67. }
  68.  
  69. return temp_list;
  70. }
  71.  
  72. public ArrayList<T2> getList(T1 id) {
  73. ArrayList<T2> temp_list = null;
  74.  
  75. if (m_arr.contains(id)) {
  76. temp_list = m_list_arr.get(m_arr.indexOf(id));
  77. } else {
  78. System.out.println("Здесь нет элемента с таким значением");
  79. }
  80.  
  81. return temp_list;
  82. }
  83. }
  84.  
  85. class AWM { // use DLIST
  86.  
  87. private DList list=new DList<>();
  88.  
  89.  
  90. public ArrayList<Integer> GetMoneySet(int amount_money,ArrayList<Integer> arr_coins) {
  91.  
  92. Arrays.sort(arr_coins.toArray());
  93. System.out.println("After sorting: ");
  94. System.out.println(Arrays.toString(arr_coins.toArray()));
  95. System.out.println();
  96. list.addList(amount_money,arr_coins);
  97.  
  98. Integer temp = amount_money;
  99. ArrayList<Integer> m_coins=new ArrayList<>();
  100. //temp 20
  101. //arr_coins[j] 10
  102. //m_coins {10}
  103. for (int j = arr_coins.size()- 1; j >= 0; j--) {
  104. if (temp - arr_coins.get(j) >= 0)
  105. {
  106.  
  107. m_coins.add(arr_coins.get(j));
  108.  
  109. if(amount_money-temp<arr_coins.get(j)) arr_coins.add(j);
  110. temp -= arr_coins.get(j);
  111. System.out.println("temp: "+temp);
  112. System.out.println("arr_coins :"+arr_coins.get(j));
  113.  
  114. }
  115.  
  116.  
  117. }
  118. list.getM_list_arr().set(0,m_coins);
  119. return list.getM_list_arr();
  120. }
  121. }
  122.  
  123. public class Main {
  124.  
  125. public static void main(String[] args) {
  126.  
  127. AWM awm=new AWM();
  128. ArrayList<Integer> list2=new ArrayList<>();
  129. list2.add(1);
  130. list2.add(2);
  131. list2.add(5);
  132. list2.add(10);
  133. var awm1=awm.GetMoneySet(20,list2);
  134. for(int i=0;i<awm1.size();i++){
  135. System.out.println(awm1.get(i));
  136. }
  137. }
  138. }
  139.  
  140.  
Advertisement
Add Comment
Please, Sign In to add comment