Advertisement
HeatPulse

lab4-3 Shalterot na MVR

Nov 12th, 2019
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.00 KB | None | 0 0
  1. Шалтерот на МВР Problem 3 (0 / 0)
  2. Луѓето доаѓаат наутро во МВР за да извадат еден или повеќе документи.
  3. Документите може да бидат:
  4. 1. Лична карта
  5. 2. Пасош
  6. 3. Возачка дозвола
  7. Кога се отвора шалтерот прво се услужуваат луѓето кои чекаат за лична карта, па потоа оние за пасош и на крај оние за возачка дозвола.
  8. Секој човек кога ќе дојде си застанува во редицата за соодветната исправа која ја вади (т.е. или во редицата за лични карти или во редицата за пасоши или во редицата за возачки дозволи). Доколку еден човек има повеќе документи за вадење прво вади лична карта, па пасош и на крај возачка. Така ако еден човек треба да вади и лична карта и возачка дозвола прво застанува во редицата за лични карти и откако ќе заврши таму оди на крајот на редицата за возачки дозволи.
  9.  
  10. Влез: Првиот ред означува колку луѓе вкупно дошле во МВР. Потоа за секој човек се внесуваат четири реда, во првиот е името и презимето на човекот, а во останатите три реда се кажува кој документ соодветно (лична карта, пасош и возачка) треба да се земе, притоа 1 значи дека треба да се земе тој документ, 0 значи дека не треба да се земе.
  11.  
  12. На пример:
  13.  
  14. Aleksandar Aleksandrovski
  15. 1
  16. 0
  17. 1
  18. означува дека Александар Александровски ќе вади и лична карта и возачка дозвола, но нема да вади пасош.
  19. Излез: Ги печати имињата на луѓето по редоследот по кој завршуваат со вадење на документи.
  20.  
  21. Име на класата (Java): MVR
  22.  
  23.  
  24.  
  25.  
  26. Sample input
  27. 4
  28. Aleksandar Aleksandrovski
  29. 0
  30. 0
  31. 1
  32. Petre Petreski
  33. 1
  34. 0
  35. 0
  36. Branka Brankovska
  37. 0
  38. 0
  39. 1
  40. Jana Janevska
  41. 0
  42. 1
  43. 0
  44. Sample output
  45. Petre Petreski
  46. Jana Janevska
  47. Aleksandar Aleksandrovski
  48. Branka Brankovska
  49.  
  50.  
  51.  
  52.  
  53.  
  54. import java.util.*;
  55.  
  56. class Gragjanin{
  57. protected String ime;
  58. protected int karta, pasos, vozacka;
  59. public Gragjanin() {}
  60. public Gragjanin(String ime, int karta, int pasos, int vozacka) {
  61. this.ime = ime;
  62. this.karta = karta;
  63. this.pasos = pasos;
  64. this.vozacka = vozacka;
  65. }
  66. }
  67.  
  68. class SLLNode<E> {
  69. protected E element;
  70. protected SLLNode<E> succ;
  71. public SLLNode(E element, SLLNode<E> succ) {
  72. this.element = element;
  73. this.succ = succ;
  74. }
  75. }
  76.  
  77. class Queue<E> {
  78. private SLLNode<E> front, rear;
  79. private int length;
  80. public Queue() {
  81. front = null;
  82. rear = null;
  83. length = 0;
  84. }
  85. public boolean isEmpty() {
  86. return length == 0;
  87. }
  88. public int size() {
  89. return length;
  90. }
  91. public E peek() {
  92. if(length > 0)
  93. return front.element;
  94. else
  95. throw new NoSuchElementException();
  96. }
  97. public void enque(E x) {
  98. SLLNode<E> tmp = new SLLNode(x, null);
  99. if(length > 0){
  100. rear.succ = tmp;
  101. rear = tmp;
  102. } else
  103. front = rear = tmp;
  104. length++;
  105. }
  106. public E deque() {
  107. if(length > 0){
  108. E tmp = front.element;
  109. front = front.succ;
  110. length--;
  111. return tmp;
  112. } else
  113. throw new NoSuchElementException();
  114. }
  115. @Override
  116. public String toString() {
  117. String s = new String();
  118. SLLNode<E> node = front;
  119. while(node != null){
  120. s += node.element + "\n";
  121. node = node.succ;
  122. }
  123. return s;
  124. }
  125. }
  126.  
  127. public class MVR {
  128. public static void print(Gragjanin[] g) {
  129. Queue<Gragjanin> lkarta = new Queue();
  130. Queue<Gragjanin> pasos = new Queue();
  131. Queue<Gragjanin> vozacka = new Queue();
  132. Gragjanin temp = new Gragjanin();
  133. for(Gragjanin gr : g)
  134. if(gr.karta == 1)
  135. lkarta.enque(gr);
  136. else if(gr.pasos == 1)
  137. pasos.enque(gr);
  138. else if(gr.vozacka == 1)
  139. vozacka.enque(gr);
  140. while(!lkarta.isEmpty()){
  141. temp = lkarta.deque();
  142. if(temp.pasos == 0&&temp.vozacka == 0)
  143. System.out.println(temp.ime);
  144. else if(temp.pasos == 1)
  145. pasos.enque(temp);
  146. else
  147. vozacka.enque(temp);
  148. }
  149. while(!pasos.isEmpty()){
  150. temp = pasos.deque();
  151. if(temp.vozacka == 0)
  152. System.out.println(temp.ime);
  153. else
  154. vozacka.enque(temp);
  155. }
  156. while(!vozacka.isEmpty())
  157. System.out.println(vozacka.deque().ime);
  158. }
  159. public static void main(String[] args) {
  160. Scanner br = new Scanner(System.in);
  161. int N = Integer.parseInt(br.nextLine());
  162. Gragjanin[] g = new Gragjanin[N];
  163. for(int i = 1; i <= N; i++){
  164. String imePrezime = br.nextLine();
  165. int lKarta = Integer.parseInt(br.nextLine());
  166. int pasos = Integer.parseInt(br.nextLine());
  167. int vozacka = Integer.parseInt(br.nextLine());
  168. Gragjanin covek = new Gragjanin(imePrezime, lKarta, pasos, vozacka);
  169. g[i - 1] = covek;
  170. }
  171. print(g);
  172. }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement