Advertisement
Kame3

Шалтерот на МВР 4.3

Nov 11th, 2020 (edited)
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.39 KB | None | 0 0
  1. Луѓето доаѓаат наутро во МВР за да извадат еден или повеќе документи.
  2.  
  3. Документите може да бидат:
  4. 1. Лична карта
  5. 2. Пасош
  6. 3. Возачка дозвола
  7.  
  8. Кога се отвора шалтерот прво се услужуваат луѓето кои чекаат за лична карта, па потоа оние за пасош и на крај оние за возачка дозвола.
  9. Секој човек кога ќе дојде си застанува во редицата за соодветната исправа која ја вади (т.е. или во редицата за лични карти или во редицата за пасоши или во редицата за возачки дозволи). Доколку еден човек има повеќе документи за вадење прво вади лична карта, па пасош и на крај возачка. Така ако еден човек треба да вади и лична карта и возачка дозвола прво застанува во редицата за лични карти и откако ќе заврши таму оди на крајот на редицата за возачки дозволи.
  10.  
  11. Влез: Првиот ред означува колку луѓе вкупно дошле во МВР. Потоа за секој човек се внесуваат четири реда, во првиот е името и презимето на човекот, а во останатите три реда се кажува кој документ соодветно (лична карта, пасош и возачка) треба да се земе, притоа 1 значи дека треба да се земе тој документ, 0 значи дека не треба да се земе.
  12.  
  13. На пример:
  14.  
  15. Aleksandar Aleksandrovski
  16. 1
  17. 0
  18. 1
  19.  
  20. означува дека Александар Александровски ќе вади и лична карта и возачка дозвола, но нема да вади пасош.
  21.  
  22. Излез: Ги печати имињата на луѓето по редоследот по кој завршуваат со вадење на документи.
  23.  
  24. Име на класата (Java): MVR
  25.  
  26.  
  27. import java.util.Scanner;
  28. import java.util.Collection;
  29. import java.util.Iterator;
  30. import java.util.NoSuchElementException;
  31. import java.util.Queue;
  32.  
  33. public class Main
  34. {
  35.     public static class Gragjanin{
  36.         String ime;
  37.         int lKarta;
  38.         int pasos;
  39.         int vozacka;
  40.         public Gragjanin(String ime, int lKarta, int pasos, int vozacka){
  41.             this.ime=ime;
  42.             this.lKarta=lKarta;
  43.             this.pasos=pasos;
  44.             this.vozacka=vozacka;
  45.         }
  46.         public int getlKarta() {
  47.             return lKarta;
  48.         }
  49.         public void setlKarta(int lKarta) {
  50.             this.lKarta = lKarta;
  51.         }
  52.         public int getPasos() {
  53.             return pasos;
  54.         }
  55.         public void setPasos(int pasos) {
  56.             this.pasos = pasos;
  57.         }
  58.         public int getVozacka() {
  59.             return vozacka;
  60.         }
  61.         public void setVozacka(int vozacka) {
  62.             this.vozacka = vozacka;
  63.         }
  64.        
  65.        
  66.     }
  67.     public static class ArrayQueue<E> implements Queue<E> {
  68.  
  69.         // Redicata e pretstavena na sledniot nacin:
  70.         // length go sodrzi brojot na elementi.
  71.         // Ako length > 0, togash elementite na redicata se zachuvani vo elems[front...rear-1]
  72.         // Ako rear > front, togash vo  elems[front...maxlength-1] i elems[0...rear-1]
  73.         E[] elems;
  74.         int length, front, rear;
  75.  
  76.         // Konstruktor ...
  77.  
  78.         @SuppressWarnings("unchecked")
  79.         public ArrayQueue (int maxlength) {
  80.             elems = (E[]) new Object[maxlength];
  81.             clear();
  82.         }
  83.  
  84.         public boolean isEmpty () {
  85.             // Vrakja true ako i samo ako redicata e prazena.
  86.             return (length == 0);
  87.         }
  88.  
  89.         public int size () {
  90.             // Ja vrakja dolzinata na redicata.
  91.             return length;
  92.         }
  93.  
  94.         public E peek () {
  95.             // Go vrakja elementot na vrvot t.e. pocetokot od redicata.
  96.             if (length > 0)
  97.                 return elems[front];
  98.             else
  99.                 throw new NoSuchElementException();
  100.         }
  101.  
  102.         public void clear () {
  103.             // Ja prazni redicata.
  104.             length = 0;
  105.             front = rear = 0;  // arbitrary
  106.         }
  107.  
  108.         public void enqueue (E x) {
  109.             // Go dodava x na kraj od redicata.
  110.             elems[rear++] = x;
  111.             if (rear == elems.length)  rear = 0;
  112.             length++;
  113.         }
  114.  
  115.         public E dequeue () {
  116.             // Go otstranuva i vrakja pochetniot element na redicata.
  117.             if (length > 0) {
  118.                 E frontmost = elems[front];
  119.                 elems[front++] = null;
  120.                 if (front == elems.length)  front = 0;
  121.                 length--;
  122.                 return frontmost;
  123.             } else
  124.                 throw new NoSuchElementException();
  125.         }
  126.  
  127.         @Override
  128.         public boolean addAll(Collection<? extends E> arg0) {
  129.             // TODO Auto-generated method stub
  130.             return false;
  131.         }
  132.  
  133.         @Override
  134.         public boolean contains(Object arg0) {
  135.             // TODO Auto-generated method stub
  136.             return false;
  137.         }
  138.  
  139.         @Override
  140.         public boolean containsAll(Collection<?> arg0) {
  141.             // TODO Auto-generated method stub
  142.             return false;
  143.         }
  144.  
  145.         @Override
  146.         public Iterator<E> iterator() {
  147.             // TODO Auto-generated method stub
  148.             return null;
  149.         }
  150.  
  151.         @Override
  152.         public boolean remove(Object arg0) {
  153.             // TODO Auto-generated method stub
  154.             return false;
  155.         }
  156.  
  157.         @Override
  158.         public boolean removeAll(Collection<?> arg0) {
  159.             // TODO Auto-generated method stub
  160.             return false;
  161.         }
  162.  
  163.         @Override
  164.         public boolean retainAll(Collection<?> arg0) {
  165.             // TODO Auto-generated method stub
  166.             return false;
  167.         }
  168.  
  169.         @Override
  170.         public Object[] toArray() {
  171.             // TODO Auto-generated method stub
  172.             return null;
  173.         }
  174.  
  175.         @Override
  176.         public <T> T[] toArray(T[] arg0) {
  177.             // TODO Auto-generated method stub
  178.             return null;
  179.         }
  180.  
  181.         @Override
  182.         public boolean add(E arg0) {
  183.             // TODO Auto-generated method stub
  184.             return false;
  185.         }
  186.  
  187.         @Override
  188.         public E element() {
  189.             // TODO Auto-generated method stub
  190.             return null;
  191.         }
  192.  
  193.         @Override
  194.         public boolean offer(E arg0) {
  195.             // TODO Auto-generated method stub
  196.             return false;
  197.         }
  198.  
  199.         @Override
  200.         public E poll() {
  201.             // TODO Auto-generated method stub
  202.             return null;
  203.         }
  204.  
  205.         @Override
  206.         public E remove() {
  207.             // TODO Auto-generated method stub
  208.             return null;
  209.         }
  210.     }
  211.  
  212.    
  213.     public static void main(String[] args) {
  214.        
  215.         Scanner br = new Scanner(System.in);
  216.        
  217.         ArrayQueue<Gragjanin> licni = new ArrayQueue<>(50);
  218.         ArrayQueue<Gragjanin> pasosi = new ArrayQueue<>(50);
  219.         ArrayQueue<Gragjanin> vozacki = new ArrayQueue<>(50);
  220.        
  221.         int N = Integer.parseInt(br.nextLine());
  222.         for(int i=1;i<=N;i++){
  223.             String imePrezime = br.nextLine();
  224.             int lKarta = Integer.parseInt(br.nextLine());
  225.             int pasos = Integer.parseInt(br.nextLine());
  226.             int vozacka = Integer.parseInt(br.nextLine());
  227.             Gragjanin covek = new Gragjanin(imePrezime,lKarta,pasos,vozacka);
  228.            
  229.             if(lKarta == 1){
  230.                 licni.enqueue(covek);
  231.             } else if(lKarta == 0 && pasos == 1){
  232.                 pasosi.enqueue(covek);
  233.             } else if(lKarta == 0 && pasos == 0 && vozacka == 1){
  234.                 vozacki.enqueue(covek);
  235.             }
  236.         }
  237.         while(!licni.isEmpty()){
  238.             Gragjanin pom = licni.dequeue();
  239.             if(pom.pasos == 0 && pom.vozacka == 0){
  240.                 System.out.println(pom.ime);
  241.             } else if(pom.pasos == 1){
  242.                 pasosi.enqueue(pom);
  243.             } else if(pom.vozacka == 1){
  244.                 vozacki.enqueue(pom);
  245.             }
  246.         }
  247.         while(!pasosi.isEmpty()){
  248.             Gragjanin pom = pasosi.dequeue();
  249.             if(pom.vozacka == 0){
  250.                 System.out.println(pom.ime);
  251.             } else if(pom.vozacka == 1){
  252.                 vozacki.enqueue(pom);
  253.             }
  254.         }
  255.         while(!vozacki.isEmpty()){
  256.             Gragjanin pom = vozacki.dequeue();
  257.             System.out.println(pom.ime);
  258.         }
  259.     }
  260. }
  261.  
  262.  
  263.  
  264.  
  265. Sample input
  266.  
  267. 4
  268. Aleksandar Aleksandrovski
  269. 0
  270. 0
  271. 1
  272. Petre Petreski
  273. 1
  274. 0
  275. 0
  276. Branka Brankovska
  277. 0
  278. 0
  279. 1
  280. Jana Janevska
  281. 0
  282. 1
  283. 0
  284.  
  285. Sample output
  286.  
  287. Petre Petreski
  288. Jana Janevska
  289. Aleksandar Aleksandrovski
  290. Branka Brankovska
  291.  
  292.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement