DamSi

Untitled

Nov 3rd, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.01 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.NoSuchElementException;
  3.  
  4. /**
  5.  *
  6.  * @author Damjan
  7.  */
  8. public class MVR {
  9.  
  10.     /**
  11.      * @param args the command line arguments
  12.      */
  13.     public static void main(String[] args) {
  14.         Scanner br = new Scanner(System.in);
  15.         ArrayQueue<Gragjanin> salterLicniKarti = new ArrayQueue<>(60);
  16.         ArrayQueue<Gragjanin> salterPasosi = new ArrayQueue<>(60);
  17.         ArrayQueue<Gragjanin> salterVozacki = new ArrayQueue<>(60);
  18.         int N = Integer.parseInt(br.nextLine());
  19.         for (int i = 1; i <= N; i++) {
  20.             String imePrezime = br.nextLine();
  21.             int lKarta = Integer.parseInt(br.nextLine());
  22.             int pasos = Integer.parseInt(br.nextLine());
  23.             int vozacka = Integer.parseInt(br.nextLine());
  24.             Gragjanin covek = new Gragjanin(imePrezime, lKarta, pasos, vozacka);
  25.             //isprati gi lugjeto na soodvetniot salter
  26.             if (covek.getlKarta() == 1) {
  27.                 salterLicniKarti.enqueue(covek);
  28.             } else if (covek.getPasos() == 1) {
  29.                 salterPasosi.enqueue(covek);
  30.             } else if (covek.getVozacka() == 1) {
  31.                 salterVozacki.enqueue(covek);
  32.             }
  33.         }
  34.         while (!salterLicniKarti.isEmpty()) {
  35.             Gragjanin stranka = salterLicniKarti.dequeue();
  36.             if (stranka.getPasos() == 1) {
  37.                 salterPasosi.enqueue(stranka);
  38.             } else if (stranka.getVozacka() == 1) {
  39.                 salterVozacki.enqueue(stranka);
  40.             } else {
  41.                 System.out.println(stranka);
  42.             }
  43.         }
  44.         while (!salterPasosi.isEmpty()) {
  45.             Gragjanin stranka = salterPasosi.dequeue();
  46.             if (stranka.getVozacka() == 1) {
  47.                 salterVozacki.enqueue(stranka);
  48.             } else {
  49.                 System.out.println(stranka);
  50.             }
  51.         }
  52.         while(!salterVozacki.isEmpty()){
  53.             Gragjanin stranka = salterVozacki.dequeue();
  54.             System.out.println(stranka);
  55.         }
  56.     }
  57.  
  58. }
  59.  
  60. class Gragjanin {
  61.  
  62.     private String imePrezime;
  63.     private int lKarta;
  64.     private int pasos;
  65.     private int vozacka;
  66.  
  67.     public Gragjanin(String imePrezime, int lKarta, int pasos, int vozacka) {
  68.         this.imePrezime = imePrezime;
  69.         this.lKarta = lKarta;
  70.         this.pasos = pasos;
  71.         this.vozacka = vozacka;
  72.     }
  73.  
  74.     public String getImePrezime() {
  75.         return imePrezime;
  76.     }
  77.  
  78.     public int getlKarta() {
  79.         return lKarta;
  80.     }
  81.  
  82.     public int getPasos() {
  83.         return pasos;
  84.     }
  85.  
  86.     public int getVozacka() {
  87.         return vozacka;
  88.     }
  89.  
  90.     @Override
  91.     public String toString() {
  92.         return String.format("%s", imePrezime);
  93.     }
  94.  
  95. }
  96.  interface Queue<E> {
  97.  
  98.     // Elementi na redicata se objekti od proizvolen tip.
  99.  
  100.     // Metodi za pristap:
  101.  
  102.     public boolean isEmpty ();
  103.         // Vrakja true ako i samo ako redicata e prazena.
  104.  
  105.     public int size ();
  106.         // Ja vrakja dolzinata na redicata.
  107.  
  108.     public E peek ();
  109.         // Go vrakja elementot na vrvot t.e. pocetokot od redicata.
  110.  
  111.     // Metodi za transformacija:
  112.  
  113.     public void clear ();
  114.         // Ja prazni redicata.
  115.  
  116.     public void enqueue (E x);
  117.         // Go dodava x na kraj od redicata.
  118.  
  119.     public E dequeue ();
  120.         // Go otstranuva i vrakja pochetniot element na redicata.
  121.  
  122. }
  123. class ArrayQueue<E> implements Queue<E> {
  124.  
  125.     // Redicata e pretstavena na sledniot nacin:
  126.     // length go sodrzi brojot na elementi.
  127.     // Ako length > 0, togash elementite na redicata se zachuvani vo elems[front...rear-1]
  128.     // Ako rear > front, togash vo  elems[front...maxlength-1] i elems[0...rear-1]
  129.     E[] elems;
  130.     int length, front, rear;
  131.  
  132.     // Konstruktor ...
  133.  
  134.     @SuppressWarnings("unchecked")
  135.     public ArrayQueue (int maxlength) {
  136.         elems = (E[]) new Object[maxlength];
  137.         clear();
  138.     }
  139.  
  140.     public boolean isEmpty () {
  141.         // Vrakja true ako i samo ako redicata e prazena.
  142.         return (length == 0);
  143.     }
  144.  
  145.     public int size () {
  146.         // Ja vrakja dolzinata na redicata.
  147.         return length;
  148.     }
  149.  
  150.     public E peek () {
  151.         // Go vrakja elementot na vrvot t.e. pocetokot od redicata.
  152.         if (length > 0)
  153.             return elems[front];
  154.         else
  155.             throw new NoSuchElementException();
  156.     }
  157.  
  158.     public void clear () {
  159.         // Ja prazni redicata.
  160.         length = 0;
  161.         front = rear = 0;  // arbitrary
  162.     }
  163.  
  164.     public void enqueue (E x) {
  165.         // Go dodava x na kraj od redicata.
  166.         elems[rear++] = x;
  167.         if (rear == elems.length)  rear = 0;
  168.         length++;
  169.     }
  170.  
  171.     public E dequeue () {
  172.         // Go otstranuva i vrakja pochetniot element na redicata.
  173.         if (length > 0) {
  174.             E frontmost = elems[front];
  175.             elems[front++] = null;
  176.             if (front == elems.length)  front = 0;
  177.             length--;
  178.             return frontmost;
  179.         } else
  180.             throw new NoSuchElementException();
  181.     }
  182. }
Advertisement
Add Comment
Please, Sign In to add comment