Advertisement
SlavkovB

[АПС] Консултации група 4

Sep 17th, 2019
568
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.17 KB | None | 0 0
  1. /**Консултации
  2. Кај асистентот Игор се одржуваат консултации по два предмети АСП и ММС во еден термин.
  3. Бидејќи по АПС колоквиумот е следниот ден, Игор им рекол на студентите кои што чекаат дека прво ќе ги услужи студентите по АПС, а после студентите по ММС.
  4. Студентите се подготвиле со прашања и прашањата за АПС можат да бидат од тип А, B, C или D.
  5. Асистентот им напоменал на студентите по АПС, ако дојде некој студент и праша прашање од тип X (X e A,B,C или D) и веднаш после него дојде студент со прашање од тип X (т.е. со прашање од ист тип), вториот студент ќе биде ставен на крајот од редот и истовремено ќе биде пуштен еден студент од другата редица за ММС (ако таа редица не е празна).
  6.  
  7. Генерално, ако последното одговорено прашање по АПС е од тип X, и дојде студент со прашање од тип X,
  8. тој се преместува на крајот од редот и се пушта еден студент од другата редица за ММС (ако таа редица не е празна).
  9. Кој ќе биде конечниот распоред за влегување?
  10.  
  11. Влез: Се дава прво бројот на студенти кои се пријавиле за консултации АПС, а потоа се наведуваат студентите според редоследот на пријавување и се дава за кој тип прашање се пријавиле (A, B, C или D).
  12. Следно се дава бројот на студенти кои се пријавиле за консултации ММС, а потоа се наведуваат студентите според редоследот на пријавување.
  13.  
  14. На излез се печатат студентите според редоследот по кој влегле на консултации.
  15.  
  16. Име на класа (за Јава): Konsultacii
  17.  
  18. Забелешка: При реализација на задачите МОРА да се користат дадените структури, а не да користат помошни структури како низи или сл.
  19.  
  20. Sample input
  21. 3
  22. IlinkaIvanoska A
  23. MagdalenaKostoska A
  24. HristinaMihajloska B
  25. 1
  26. IgorKulev
  27.  
  28. Sample output
  29. IlinkaIvanoska
  30. IgorKulev
  31. HristinaMihajloska
  32. MagdalenaKostoska
  33.  
  34.  
  35. Sample input
  36. 3
  37. IlinkaIvanoska A
  38. MagdalenaKostoska B
  39. HristinaMihajloska B
  40. 1
  41. IgorKulev
  42.  
  43. Sample output
  44. IlinkaIvanoska
  45. MagdalenaKostoska
  46. IgorKulev
  47. HristinaMihajloska
  48. */
  49.  
  50.  
  51. //CODE
  52.  
  53.  
  54.  
  55. import java.util.NoSuchElementException;
  56. import java.util.Scanner;
  57.  
  58. class SLLNode<E> {
  59.     protected E element;
  60.     protected SLLNode<E> succ;
  61.  
  62.     public SLLNode(E elem, SLLNode<E> succ) {
  63.         this.element = elem;
  64.         this.succ = succ;
  65.     }
  66.  
  67.     @Override
  68.     public String toString() {
  69.         return element.toString();
  70.     }
  71. }
  72.  
  73. interface Queue<E> {
  74.     public boolean isEmpty();
  75.  
  76.     public int size();
  77.  
  78.     public E peek();
  79.  
  80.     public void clear();
  81.  
  82.     public void enqueue(E x);
  83.  
  84.     public E dequeue();
  85. }
  86.  
  87. class ArrayQueue<E> implements Queue<E> {
  88.  
  89.     E[] elems;
  90.     int length, front, rear;
  91.  
  92.     @SuppressWarnings("unchecked")
  93.     public ArrayQueue(int maxlength) {
  94.         elems = (E[]) new Object[maxlength];
  95.         clear();
  96.     }
  97.  
  98.     public boolean isEmpty() {
  99.         return (length == 0);
  100.     }
  101.  
  102.     public int size() {
  103.         return elems.length;
  104.     }
  105.  
  106.     public E peek() {
  107.         if (length > 0)
  108.             return elems[front];
  109.         else
  110.             throw new NoSuchElementException();
  111.     }
  112.  
  113.     public void clear() {
  114.         length = 0;
  115.         front = rear = 0; // arbitrary
  116.     }
  117.  
  118.     public void enqueue(E x) {
  119.         elems[rear++] = x;
  120.         if (rear == elems.length)
  121.             rear = 0;
  122.         length++;
  123.     }
  124.  
  125.     public E dequeue() {
  126.         if (length > 0) {
  127.             E frontmost = elems[front];
  128.             elems[front++] = null;
  129.             if (front == elems.length)
  130.                 front = 0;
  131.             length--;
  132.             return frontmost;
  133.         } else
  134.             throw new NoSuchElementException();
  135.     }
  136. }
  137.  
  138. public class Konsultacii {
  139.     private static void Konsultacii(ArrayQueue<String> redAPS, ArrayQueue<String> redMMS, ArrayQueue<String> redTip) {
  140.         String tip = "";
  141.  
  142.         while (!redAPS.isEmpty() && !redTip.isEmpty()) {
  143.             if (tip.equals(redTip.peek())) {
  144.                 tip = redTip.dequeue();
  145.                 redTip.enqueue(tip);
  146.                 redAPS.enqueue(redAPS.dequeue());
  147.                 if (!redMMS.isEmpty())
  148.                     System.out.println(redMMS.dequeue());
  149.                 else {
  150.                     tip = redTip.dequeue();
  151.                     System.out.println(redAPS.dequeue());
  152.                 }
  153.             } else {
  154.                 tip = redTip.dequeue();
  155.                 System.out.println(redAPS.dequeue());
  156.             }
  157.         }
  158.         while (!redMMS.isEmpty())
  159.             System.out.println(redMMS.dequeue());
  160.     }
  161.  
  162.     public static void main(String[] args) {
  163.  
  164.         Scanner br = new Scanner(System.in);
  165.  
  166.         ArrayQueue<String> redAPS = new ArrayQueue<String>(50);
  167.         ArrayQueue<String> redMMS = new ArrayQueue<String>(50);
  168.         ArrayQueue<String> redTip = new ArrayQueue<String>(50);
  169.  
  170.         int i, brStudentiAPS, brStudentiMMS;
  171.  
  172.         brStudentiAPS = Integer.parseInt(br.nextLine());
  173.         String[] imeStudentiAPS = new String[brStudentiAPS];
  174.         String[] studentiAPStipPrasanje = new String[brStudentiAPS];
  175.  
  176.         for (i = 0; i < brStudentiAPS; i++) {
  177.             String red = br.nextLine();
  178.             String[] pom = red.split(" ");
  179.             imeStudentiAPS[i] = pom[0];
  180.             redAPS.enqueue(imeStudentiAPS[i]);
  181.  
  182.             studentiAPStipPrasanje[i] = pom[1];
  183.             redTip.enqueue(studentiAPStipPrasanje[i]);
  184.         }
  185.  
  186.         brStudentiMMS = Integer.parseInt(br.nextLine());
  187.         String[] imeStudentiMMS = new String[brStudentiMMS];
  188.  
  189.         for (i = 0; i < brStudentiMMS; i++) {
  190.             String red = br.nextLine();
  191.             String[] pom = red.split(" ");
  192.             imeStudentiMMS[i] = pom[0];
  193.             redMMS.enqueue(imeStudentiMMS[i]);
  194.         }
  195.  
  196.         Konsultacii(redAPS, redMMS, redTip);
  197.  
  198.         br.close();
  199.     }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement