Advertisement
Stamenco

АПС - Шалтерот на МВР

Nov 16th, 2020
977
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.40 KB | None | 0 0
  1. /* Шалтерот на МВР
  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. import java.util.NoSuchElementException;
  26. import java.util.Scanner;
  27.  
  28. public class MVR {
  29.  
  30.     public static void main(String[] args) {
  31.  
  32.         Scanner br = new Scanner(System.in);
  33.  
  34.         LinkedQueue<Gragjanin> licnaKarta = new LinkedQueue<>();
  35.         LinkedQueue<Gragjanin> pasosh = new LinkedQueue<>();
  36.         LinkedQueue<Gragjanin> vozackaDozvola = new LinkedQueue<>();
  37.  
  38.         int N = Integer.parseInt(br.nextLine());
  39.         for (int i = 1; i <= N; i++) {
  40.             String imePrezime = br.nextLine();
  41.             int lKarta = Integer.parseInt(br.nextLine());
  42.             int pasos = Integer.parseInt(br.nextLine());
  43.             int vozacka = Integer.parseInt(br.nextLine());
  44.             Gragjanin covek = new Gragjanin(imePrezime, lKarta, pasos, vozacka);
  45.  
  46.             if (covek.getLicnaKarta() == 1)
  47.                 licnaKarta.enqueue(covek);
  48.             else if (covek.getPasosh() ==1)
  49.                 pasosh.enqueue(covek);
  50.             else
  51.                 vozackaDozvola.enqueue(covek);
  52.         }
  53.  
  54.         while (!licnaKarta.isEmpty()) {
  55.             Gragjanin pom = licnaKarta.dequeue();
  56.             if (pom.getPasosh() == 1)
  57.                 pasosh.enqueue(pom);
  58.             else if (pom.getVozacka() == 1)
  59.                 vozackaDozvola.enqueue(pom);
  60.             else
  61.                 System.out.println(pom);
  62.         }
  63.         while (!pasosh.isEmpty()) {
  64.             Gragjanin pom = pasosh.dequeue();
  65.             if (pom.getVozacka() == 1)
  66.                 vozackaDozvola.enqueue(pom);
  67.             else
  68.                 System.out.println(pom);
  69.         }
  70.         while (!vozackaDozvola.isEmpty()) {
  71.             System.out.println(vozackaDozvola.dequeue());
  72.         }
  73.     }
  74.  
  75.     static class Gragjanin{
  76.  
  77.         private String imePrezime;
  78.         private int licnaKarta;
  79.         private int pasosh;
  80.         private int vozacka;
  81.  
  82.         public Gragjanin() {
  83.         }
  84.  
  85.         public Gragjanin(String imePrezime, int licnaKarta, int pasosh, int vozacka) {
  86.             this.imePrezime = imePrezime;
  87.             this.licnaKarta = licnaKarta;
  88.             this.pasosh = pasosh;
  89.             this.vozacka = vozacka;
  90.         }
  91.  
  92.         public String getImePrezime() {
  93.             return imePrezime;
  94.         }
  95.  
  96.         public void setImePrezime(String imePrezime) {
  97.             this.imePrezime = imePrezime;
  98.         }
  99.  
  100.         public int getLicnaKarta() {
  101.             return licnaKarta;
  102.         }
  103.  
  104.         public void setLicnaKarta(int licnaKarta) {
  105.             this.licnaKarta = licnaKarta;
  106.         }
  107.  
  108.         public int getPasosh() {
  109.             return pasosh;
  110.         }
  111.  
  112.         public void setPasosh(int pasosh) {
  113.             this.pasosh = pasosh;
  114.         }
  115.  
  116.         public int getVozacka() {
  117.             return vozacka;
  118.         }
  119.  
  120.         public void setVozacka(int vozacka) {
  121.             this.vozacka = vozacka;
  122.         }
  123.        
  124.         @Override
  125.         public String toString() {
  126.             return imePrezime;
  127.         }
  128.     }
  129.  
  130.     interface Queue<E> {
  131.         public boolean isEmpty ();
  132.         public int size ();
  133.         public E peek ();
  134.         public void clear ();
  135.         public void enqueue (E x);
  136.         public E dequeue ();
  137.     }
  138.  
  139.     static class LinkedQueue<E> implements Queue<E> {
  140.         SLLNode<E> front, rear;
  141.         int length;
  142.         public LinkedQueue () {
  143.             clear();
  144.         }
  145.         public void clear () {
  146.             front = rear = null;
  147.             length = 0;
  148.         }
  149.         public boolean isEmpty () {
  150.             return (length == 0);
  151.         }
  152.         public int size () { return length; }
  153.         public E peek () {
  154.             if (front == null)
  155.                 throw new NoSuchElementException();
  156.             return front.getElement();
  157.         }
  158.         public void enqueue (E x) {
  159.             SLLNode<E> latest = new SLLNode<E>(x, null);
  160.             if (rear != null) {
  161.                 rear.succ = latest;
  162.                 rear = latest;
  163.             } else
  164.                 front = rear = latest;
  165.             length++;
  166.         }
  167.         public E dequeue () {
  168.             if (front != null) {
  169.                 E frontmost = front.getElement();
  170.                 front = front.succ;
  171.                 if (front == null) rear = null;
  172.                 length--;
  173.                 return frontmost;
  174.             } else
  175.                 throw new NoSuchElementException();
  176.         }
  177.     }
  178.  
  179.     static class SLLNode<E> {
  180.  
  181.         private E element;
  182.         public SLLNode<E> succ;
  183.  
  184.         public SLLNode(E element, SLLNode<E> succ) {
  185.             this.setElement(element);
  186.             this.succ = succ;
  187.         }
  188.  
  189.         @Override
  190.         public String toString() {
  191.             return getElement().toString();
  192.         }
  193.  
  194.         public E getElement() {
  195.             return element;
  196.         }
  197.  
  198.         public void setElement(E element) {
  199.             this.element = element;
  200.         }
  201.  
  202.     }
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement