Advertisement
dzocesrce

[APS] Tasks

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