Advertisement
dzocesrce

[APS] Bank

Aug 25th, 2023
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.53 KB | None | 0 0
  1. //juni 2022 - termin 2
  2.  
  3. import java.util.NoSuchElementException;
  4. import java.util.Scanner;
  5.  
  6. public class Bank
  7. {
  8.     public static void bank(SLL<Client> normal, SLL<Client> golden)
  9.     {
  10.     SLLNode<Client> temp1= golden.getFirst();
  11.     SLLNode<Client> temp2= normal.getFirst();
  12.     int min_importance= temp1.element.getLoyalty()*10+temp1.element.getAccounts()*20;
  13.     int min_important_id= temp1.element.getId();
  14.     temp1=temp1.succ;
  15.     while(temp1!=null){
  16.         int importance=temp1.element.getLoyalty()*10+temp1.element.getAccounts()*20;
  17.         if(importance<min_importance){
  18.             min_importance= importance;
  19.             min_important_id= temp1.element.getId();
  20.         }
  21.         temp1=temp1.succ;
  22.     }
  23.     temp1= golden.getFirst();
  24.     while(temp1!=null){
  25.         if(temp1.element.getId()==min_important_id){
  26.             normal.insertLast(new Client(temp1.element.getId(),temp1.element.getLoyalty(),temp1.element.getAccounts()));
  27.             golden.delete(temp1);
  28.             break;
  29.         }
  30.         temp1=temp1.succ;
  31.     }
  32.     int max_importance= temp2.element.getLoyalty()*10+temp2.element.getAccounts()*20;
  33.     int max_important_id= temp2.element.getId();
  34.     temp2=temp2.succ;
  35.     while(temp2!=null){
  36.         int importance=temp2.element.getLoyalty()*10+temp2.element.getAccounts()*20;
  37.         if(importance>max_importance){
  38.             max_importance=temp2.element.getLoyalty()*10+temp2.element.getAccounts()*20;
  39.             max_important_id=temp2.element.getId();
  40.         }
  41.         temp2=temp2.succ;
  42.     }
  43.     temp2= normal.getFirst();
  44.     while(temp2!=null){
  45.         if(temp2.element.getId()==max_important_id){
  46.             golden.insertLast(new Client(temp2.element.getId(),temp2.element.getLoyalty(),temp2.element.getAccounts()));
  47.             normal.delete(temp2);
  48.             break;
  49.         }
  50.         temp2=temp2.succ;
  51.     }
  52.     }
  53.     public static void main(String[] args)
  54.     {
  55.         SLL<Client> Normal = new SLL<Client>();
  56.         SLL<Client> Golden = new SLL<Client>();
  57.  
  58.         Scanner vnesi = new Scanner(System.in);
  59.         int n = vnesi.nextInt();
  60.         int m = vnesi.nextInt();
  61.  
  62.         for(int i=0;i<n;i++)
  63.         {
  64.             int id = vnesi.nextInt();
  65.             int loyalty = vnesi.nextInt();
  66.             int accounts = vnesi.nextInt();
  67.             Client c1 = new Client(id,loyalty,accounts);
  68.             Normal.insertLast(c1);
  69.         }
  70.         for(int j=0;j<m;j++)
  71.         {
  72.             int id = vnesi.nextInt();
  73.             int loyalty = vnesi.nextInt();
  74.             int accounts = vnesi.nextInt();
  75.             Client c2 = new Client(id,loyalty,accounts);
  76.             Golden.insertLast(c2);
  77.         }
  78.         bank(Normal,Golden);
  79.         System.out.println(Normal.toString());
  80.         System.out.println(Golden.toString());
  81.     }
  82.  
  83. }
  84.  
  85. class Client
  86. {
  87.     private int id;
  88.     private int loyalty;
  89.     private int accounts;
  90.  
  91.     public Client(int id, int loyalty, int accounts)
  92.     {
  93.         this.id = id;
  94.         this.loyalty = loyalty;
  95.         this.accounts = accounts;
  96.     }
  97.  
  98.     public int getId() {
  99.         return id;
  100.     }
  101.  
  102.     public int getLoyalty() {
  103.         return loyalty;
  104.     }
  105.  
  106.     public int getAccounts() {
  107.         return accounts;
  108.     }
  109.  
  110.     @Override
  111.     public String toString() {
  112.         return String.valueOf(id);
  113.     }
  114. }
  115.  
  116. class SLL<E> {
  117.     private SLLNode<E> first;
  118.  
  119.     public SLL() {
  120.         // Construct an empty SLL
  121.         this.first = null;
  122.     }
  123.  
  124.     public void deleteList() {
  125.         first = null;
  126.     }
  127.  
  128.     public int length() {
  129.         int ret;
  130.         if (first != null) {
  131.             SLLNode<E> tmp = first;
  132.             ret = 1;
  133.             while (tmp.succ != null) {
  134.                 tmp = tmp.succ;
  135.                 ret++;
  136.             }
  137.             return ret;
  138.         } else
  139.             return 0;
  140.  
  141.     }
  142.  
  143.     @Override
  144.     public String toString() {
  145.         String ret = new String();
  146.         if (first != null) {
  147.             SLLNode<E> tmp = first;
  148.             ret += tmp + " ";
  149.             while (tmp.succ != null) {
  150.                 tmp = tmp.succ;
  151.                 ret += tmp + " ";
  152.             }
  153.         } else
  154.             ret = "Prazna lista!!!";
  155.         return ret;
  156.     }
  157.  
  158.     public void insertFirst(E o) {
  159.         SLLNode<E> ins = new SLLNode<E>(o, first);
  160.         first = ins;
  161.     }
  162.  
  163.     public void insertAfter(E o, SLLNode<E> node) {
  164.         if (node != null) {
  165.             SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  166.             node.succ = ins;
  167.         } else {
  168.             System.out.println("Dadenot jazol e null");
  169.         }
  170.     }
  171.  
  172.     public void insertBefore(E o, SLLNode<E> before) {
  173.  
  174.         if (first != null) {
  175.             SLLNode<E> tmp = first;
  176.             if(first==before){
  177.                 this.insertFirst(o);
  178.                 return;
  179.             }
  180.             //ako first!=before
  181.             while (tmp.succ != before)
  182.                 tmp = tmp.succ;
  183.             if (tmp.succ == before) {
  184.                 SLLNode<E> ins = new SLLNode<E>(o, before);
  185.                 tmp.succ = ins;
  186.             } else {
  187.                 System.out.println("Elementot ne postoi vo listata");
  188.             }
  189.         } else {
  190.             System.out.println("Listata e prazna");
  191.         }
  192.     }
  193.  
  194.     public void insertLast(E o) {
  195.         if (first != null) {
  196.             SLLNode<E> tmp = first;
  197.             while (tmp.succ != null)
  198.                 tmp = tmp.succ;
  199.             SLLNode<E> ins = new SLLNode<E>(o, null);
  200.             tmp.succ = ins;
  201.         } else {
  202.             insertFirst(o);
  203.         }
  204.     }
  205.  
  206.     public E deleteFirst() {
  207.         if (first != null) {
  208.             SLLNode<E> tmp = first;
  209.             first = first.succ;
  210.             return tmp.element;
  211.         } else {
  212.             System.out.println("Listata e prazna");
  213.             return null;
  214.         }
  215.     }
  216.  
  217.     public E delete(SLLNode<E> node) {
  218.         if (first != null) {
  219.             SLLNode<E> tmp = first;
  220.             if(first ==node){
  221.                 return this.deleteFirst();
  222.             }
  223.             while (tmp.succ != node && tmp.succ.succ != null)
  224.                 tmp = tmp.succ;
  225.             if (tmp.succ == node) {
  226.                 tmp.succ = tmp.succ.succ;
  227.                 return node.element;
  228.             } else {
  229.                 System.out.println("Elementot ne postoi vo listata");
  230.                 return null;
  231.             }
  232.         } else {
  233.             System.out.println("Listata e prazna");
  234.             return null;
  235.         }
  236.  
  237.     }
  238.  
  239.     public SLLNode<E> getFirst() {
  240.         return first;
  241.     }
  242.  
  243.     public SLLNode<E> find(E o) {
  244.         if (first != null) {
  245.             SLLNode<E> tmp = first;
  246.             while (tmp.element != o && tmp.succ != null)
  247.                 tmp = tmp.succ;
  248.             if (tmp.element == o) {
  249.                 return tmp;
  250.             } else {
  251.                 System.out.println("Elementot ne postoi vo listata");
  252.             }
  253.         } else {
  254.             System.out.println("Listata e prazna");
  255.         }
  256.         return first;
  257.     }
  258.  
  259. }
  260.  
  261. class SLLNode<E> {
  262.     protected E element;
  263.     protected SLLNode<E> succ;
  264.  
  265.     public SLLNode(E elem, SLLNode<E> succ) {
  266.         this.element = elem;
  267.         this.succ = succ;
  268.     }
  269.  
  270.     @Override
  271.     public String toString() {
  272.         return element.toString();
  273.     }
  274. }
  275.  
  276. //Test Case #1
  277. //3
  278. //2
  279. //80 35 2
  280. //90 40 1
  281. //60 50 20
  282. //15 10 2
  283. //14 25 4
  284. //    
  285. //80 90 15
  286. //14 60
  287.  
  288. //Test Case #2
  289. //3
  290. //2
  291. //56 20 3
  292. //24 10 2
  293. //55 20 3
  294. //12 20 4
  295. //13 20 4
  296. //56 24 55
  297. //13 12
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement