Advertisement
dzocesrce

[APS] IOSolutions

Aug 26th, 2023
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.35 KB | None | 0 0
  1. //januari 2021 - termin 1
  2.  
  3. import java.util.NoSuchElementException;
  4. import java.util.Scanner;
  5. public class IOSolutions
  6. {
  7.     public static void alterTeams(SLL devTeam, SLL qaTeam)
  8.     {
  9.         SLLNode temp_qa= qaTeam.first;
  10.         int najmlad_qa= temp_qa.age;
  11.         int najmlad_qa_id= temp_qa.id;
  12.         temp_qa=temp_qa.succ;
  13.         while(temp_qa!=null){
  14.             if(temp_qa.age<=najmlad_qa){
  15.                 najmlad_qa=temp_qa.age;
  16.                 najmlad_qa_id= temp_qa.id;
  17.             }
  18.             temp_qa=temp_qa.succ;
  19.         }
  20.         temp_qa=qaTeam.first;
  21.         while(temp_qa!=null){
  22.             if(temp_qa.id==najmlad_qa_id){
  23.                 qaTeam.delete(temp_qa);
  24.                 break;
  25.             }
  26.             temp_qa=temp_qa.succ;
  27.         }
  28.         int sredina= (devTeam.length()+1)/2;
  29.         SLLNode temp_dev= devTeam.first;
  30.         int i=0;
  31.         while(temp_dev!=null){
  32.             if(i==sredina){
  33.                 devTeam.insertBefore(najmlad_qa_id,najmlad_qa,temp_dev);
  34.                 break;
  35.             }
  36.             i++;
  37.             temp_dev=temp_dev.succ;
  38.         }
  39.     }
  40.  
  41.     public static void main(String[] args)
  42.     {
  43.         SLL dev = new SLL();
  44.         SLL qa = new SLL();
  45.         Scanner input = new Scanner(System.in);
  46.         int n = input.nextInt();
  47.         int m = input.nextInt();
  48.  
  49.         for(int i=0;i<n;i++)
  50.         {
  51.             int id = input.nextInt();
  52.             int age = input.nextInt();
  53.             dev.insertLast(id,age);
  54.         }
  55.         for(int j=0;j<m;j++)
  56.         {
  57.             int id = input.nextInt();
  58.             int age = input.nextInt();
  59.             qa.insertLast(id,age);
  60.         }
  61.         alterTeams(dev,qa);
  62.         System.out.println(dev);
  63.         System.out.println(qa);
  64.     }
  65. }
  66.  
  67.  
  68.  
  69. class SLLNode
  70. {
  71.     int id;
  72.     int age;
  73.     SLLNode succ;
  74.  
  75.     public SLLNode(int id,int age,SLLNode succ)
  76.     {
  77.         this.id = id;
  78.         this.age = age;
  79.         this.succ = succ;
  80.     }
  81.     @Override
  82.     public String toString()
  83.     {
  84.         return String.valueOf(id);
  85.     }
  86. }
  87.  
  88. class SLL
  89. {
  90.     SLLNode first;
  91.  
  92.     public SLL()
  93.     {
  94.         this.first = null;
  95.     }
  96.  
  97.     public int length()
  98.     {
  99.         int ret;
  100.         if (first != null)
  101.         {
  102.             SLLNode tmp = first;
  103.             ret = 1;
  104.             while (tmp.succ != null) {
  105.                 tmp = tmp.succ;
  106.                 ret++;
  107.             }
  108.             return ret;
  109.         }
  110.         else
  111.             return 0;
  112.     }
  113.  
  114.     public void deleteFirst()
  115.     {
  116.         if (first != null) {
  117.             SLLNode tmp = first;
  118.             first = first.succ;
  119.         }
  120.         else
  121.         {
  122.             System.out.println("Listata e prazna");
  123.         }
  124.     }
  125.  
  126.     public void delete(SLLNode node) {
  127.         if (first != null) {
  128.             SLLNode tmp = first;
  129.             if(first ==node){
  130.                 this.deleteFirst();
  131.                 return;
  132.             }
  133.             while (tmp.succ != node && tmp.succ.succ != null)
  134.                 tmp = tmp.succ;
  135.             if (tmp.succ == node) {
  136.                 tmp.succ = tmp.succ.succ;
  137.             } else
  138.             {
  139.                 System.out.println("Elementot ne postoi vo listata");
  140.             }
  141.         } else
  142.         {
  143.             System.out.println("Listata e prazna");
  144.         }
  145.  
  146.     }
  147.  
  148.     public void insertFirst(int id,int age)
  149.     {
  150.         SLLNode ins = new SLLNode(id, age, first);
  151.         first = ins;
  152.     }
  153.     public void insertAfter(int id,int age,SLLNode node) {
  154.         if (node != null) {
  155.             SLLNode ins = new SLLNode(id,age,node.succ);
  156.             node.succ = ins;
  157.         } else {
  158.             System.out.println("Dadenot jazol e null");
  159.         }
  160.     }
  161.     public void insertBefore(int id,int age,SLLNode before) {
  162.  
  163.         if (first != null) {
  164.             SLLNode tmp = first;
  165.             if(first==before){
  166.                 this.insertFirst(id,age);
  167.                 return;
  168.             }
  169.             //ako first!=before
  170.             while (tmp.succ != before)
  171.                 tmp = tmp.succ;
  172.             if (tmp.succ == before) {
  173.                 SLLNode ins = new SLLNode(id,age, before);
  174.                 tmp.succ = ins;
  175.             } else {
  176.                 System.out.println("Elementot ne postoi vo listata");
  177.             }
  178.         } else {
  179.             System.out.println("Listata e prazna");
  180.         }
  181.     }
  182.  
  183.  
  184.     public void insertLast(int id, int age)
  185.     {
  186.         if (first != null)
  187.         {
  188.             SLLNode tmp = first;
  189.             while (tmp.succ != null)
  190.                 tmp = tmp.succ;
  191.             SLLNode ins = new SLLNode(id, age, null);
  192.             tmp.succ = ins;
  193.         }
  194.         else
  195.         {
  196.             insertFirst(id, age);
  197.         }
  198.     }
  199.     public SLLNode getFirst()
  200.     {
  201.         return first;
  202.     }
  203.  
  204.     @Override
  205.     public String toString() {
  206.         String s = new String();
  207.         SLLNode dvizi = first;
  208.         while(dvizi!=null)
  209.         {
  210.             s= s +dvizi.id + " ";
  211.             dvizi = dvizi.succ;
  212.         }
  213.         return s;
  214.     }
  215. }
  216.  
  217. //Test Case #1
  218. //3
  219. //3
  220. //16100 20
  221. //17200 30
  222. //18112 45
  223. //14102 19
  224. //19203 35
  225. //18900 19
  226.  
  227. //16100 17200 18900 18112
  228. //14102 19203
  229.  
  230. //Test Case #2
  231. //2
  232. //3
  233. //16100 20
  234. //17200 30
  235. //19898 20
  236. //14203 35
  237. //18100 19
  238.  
  239. //16100 18100 17200
  240. //19898 14203
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement