Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.28 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. class ArrayQueue<E>{
  4.     E[] elems;
  5.     int length, front, rear;
  6.     @SuppressWarnings("unchecked")
  7.     public ArrayQueue (int maxlength) {
  8.         elems = (E[]) new Object[maxlength];
  9.         clear();
  10.     }
  11.     public boolean isEmpty () {
  12.         return (length == 0);
  13.     }
  14.     public int size () {
  15.         return length;
  16.     }
  17.     public E peek () {
  18.         if (length > 0)
  19.             return elems[front];
  20.         else{
  21.             System.out.println("Queue is empty");
  22.             return null;
  23.         }
  24.     }
  25.     public void clear () {
  26.         length = 0;
  27.         front = rear = 0;
  28.     }
  29.     public void enqueue (E x) {
  30.         elems[rear++] = x;
  31.         if (rear == elems.length)  rear = 0;
  32.         length++;
  33.     }
  34.     public E dequeue () {
  35.         if (length > 0) {
  36.             E frontmost = elems[front];
  37.             elems[front++] = null;
  38.             if (front == elems.length)  front = 0;
  39.             length--;
  40.             return frontmost;
  41.         } else{
  42.             System.out.println("Queue is empty");
  43.             return null;
  44.         }
  45.     }
  46. }
  47.  
  48. class Gragjanin{
  49.     String imePrezime;
  50.     int lKarta, pasos, vozacka;
  51.     public Gragjanin(String imePrezime, int lKarta, int pasos, int vozacka) {
  52.         super();
  53.         this.imePrezime = imePrezime;
  54.         this.lKarta = lKarta;
  55.         this.pasos = pasos;
  56.         this.vozacka = vozacka;
  57.     }
  58. }
  59.  
  60. public class MVR {
  61.     public static void otvoriShalter(ArrayQueue<Gragjanin> redicaLkarti,
  62.             ArrayQueue<Gragjanin> redicaPasos, ArrayQueue<Gragjanin> redicaVozacka) {
  63.        
  64.         for (int i = 0; i <= redicaLkarti.size(); i++) {
  65.             Gragjanin temp = redicaLkarti.peek();
  66.             boolean enqueueToPasos = temp.pasos == 1 ? true : false;
  67.             boolean enqueueToVozacka = temp.vozacka == 1 ? true : false;
  68.            
  69.             System.out.println(redicaLkarti.dequeue().imePrezime);
  70.            
  71.             if (enqueueToPasos) redicaPasos.enqueue(temp);
  72.             else if (enqueueToVozacka) redicaVozacka.enqueue(temp);
  73.         }
  74.        
  75.         for (int i = 0; i <= redicaPasos.size(); i++) {
  76.             Gragjanin temp = redicaPasos.peek();
  77.             boolean enqueueToVozacka = temp.vozacka == 1 ? true : false;
  78.            
  79.             System.out.println(redicaPasos.dequeue().imePrezime);
  80.            
  81.             if (enqueueToVozacka) redicaVozacka.enqueue(temp);
  82.         }
  83.        
  84.         for (int i = 0; i <= redicaVozacka.size(); i++) {
  85.             System.out.println(redicaVozacka.dequeue().imePrezime);
  86.         }
  87.     }
  88.  
  89.     public static void main(String[] args) {
  90.        
  91.         Scanner br = new Scanner(System.in);
  92.         ArrayQueue<Gragjanin> redicaLkarti = new ArrayQueue<Gragjanin>(10);
  93.         ArrayQueue<Gragjanin> redicaPasos = new ArrayQueue<Gragjanin>(10);
  94.         ArrayQueue<Gragjanin> redicaVozacka = new ArrayQueue<Gragjanin>(10);
  95.        
  96.         int N = Integer.parseInt(br.nextLine());
  97.         for(int i=1;i<=N;i++){
  98.             String imePrezime = br.nextLine();
  99.             int lKarta = Integer.parseInt(br.nextLine());
  100.             int pasos = Integer.parseInt(br.nextLine());
  101.             int vozacka = Integer.parseInt(br.nextLine());
  102.             Gragjanin covek = new Gragjanin(imePrezime,lKarta,pasos,vozacka);
  103.             if(lKarta==1){
  104.                 redicaLkarti.enqueue(covek);
  105.             }
  106.             else if(pasos==1)
  107.                 redicaPasos.enqueue(covek);
  108.             else
  109.                 redicaVozacka.enqueue(covek);
  110.         }
  111.         otvoriShalter(redicaLkarti, redicaPasos, redicaVozacka);
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement