Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Шалтерот на МВР Problem 3 (0 / 0)
- Луѓето доаѓаат наутро во МВР за да извадат еден или повеќе документи.
- Документите може да бидат:
- 1. Лична карта
- 2. Пасош
- 3. Возачка дозвола
- Кога се отвора шалтерот прво се услужуваат луѓето кои чекаат за лична карта, па потоа оние за пасош и на крај оние за возачка дозвола.
- Секој човек кога ќе дојде си застанува во редицата за соодветната исправа која ја вади (т.е. или во редицата за лични карти или во редицата за пасоши или во редицата за возачки дозволи). Доколку еден човек има повеќе документи за вадење прво вади лична карта, па пасош и на крај возачка. Така ако еден човек треба да вади и лична карта и возачка дозвола прво застанува во редицата за лични карти и откако ќе заврши таму оди на крајот на редицата за возачки дозволи.
- Влез: Првиот ред означува колку луѓе вкупно дошле во МВР. Потоа за секој човек се внесуваат четири реда, во првиот е името и презимето на човекот, а во останатите три реда се кажува кој документ соодветно (лична карта, пасош и возачка) треба да се земе, притоа 1 значи дека треба да се земе тој документ, 0 значи дека не треба да се земе.
- На пример:
- Aleksandar Aleksandrovski
- 1
- 0
- 1
- означува дека Александар Александровски ќе вади и лична карта и возачка дозвола, но нема да вади пасош.
- Излез: Ги печати имињата на луѓето по редоследот по кој завршуваат со вадење на документи.
- Име на класата (Java): MVR
- Sample input
- 4
- Aleksandar Aleksandrovski
- 0
- 0
- 1
- Petre Petreski
- 1
- 0
- 0
- Branka Brankovska
- 0
- 0
- 1
- Jana Janevska
- 0
- 1
- 0
- Sample output
- Petre Petreski
- Jana Janevska
- Aleksandar Aleksandrovski
- Branka Brankovska
- import java.util.*;
- class Gragjanin{
- protected String ime;
- protected int karta, pasos, vozacka;
- public Gragjanin() {}
- public Gragjanin(String ime, int karta, int pasos, int vozacka) {
- this.ime = ime;
- this.karta = karta;
- this.pasos = pasos;
- this.vozacka = vozacka;
- }
- }
- class SLLNode<E> {
- protected E element;
- protected SLLNode<E> succ;
- public SLLNode(E element, SLLNode<E> succ) {
- this.element = element;
- this.succ = succ;
- }
- }
- class Queue<E> {
- private SLLNode<E> front, rear;
- private int length;
- public Queue() {
- front = null;
- rear = null;
- length = 0;
- }
- public boolean isEmpty() {
- return length == 0;
- }
- public int size() {
- return length;
- }
- public E peek() {
- if(length > 0)
- return front.element;
- else
- throw new NoSuchElementException();
- }
- public void enque(E x) {
- SLLNode<E> tmp = new SLLNode(x, null);
- if(length > 0){
- rear.succ = tmp;
- rear = tmp;
- } else
- front = rear = tmp;
- length++;
- }
- public E deque() {
- if(length > 0){
- E tmp = front.element;
- front = front.succ;
- length--;
- return tmp;
- } else
- throw new NoSuchElementException();
- }
- @Override
- public String toString() {
- String s = new String();
- SLLNode<E> node = front;
- while(node != null){
- s += node.element + "\n";
- node = node.succ;
- }
- return s;
- }
- }
- public class MVR {
- public static void print(Gragjanin[] g) {
- Queue<Gragjanin> lkarta = new Queue();
- Queue<Gragjanin> pasos = new Queue();
- Queue<Gragjanin> vozacka = new Queue();
- Gragjanin temp = new Gragjanin();
- for(Gragjanin gr : g)
- if(gr.karta == 1)
- lkarta.enque(gr);
- else if(gr.pasos == 1)
- pasos.enque(gr);
- else if(gr.vozacka == 1)
- vozacka.enque(gr);
- while(!lkarta.isEmpty()){
- temp = lkarta.deque();
- if(temp.pasos == 0&&temp.vozacka == 0)
- System.out.println(temp.ime);
- else if(temp.pasos == 1)
- pasos.enque(temp);
- else
- vozacka.enque(temp);
- }
- while(!pasos.isEmpty()){
- temp = pasos.deque();
- if(temp.vozacka == 0)
- System.out.println(temp.ime);
- else
- vozacka.enque(temp);
- }
- while(!vozacka.isEmpty())
- System.out.println(vozacka.deque().ime);
- }
- public static void main(String[] args) {
- Scanner br = new Scanner(System.in);
- int N = Integer.parseInt(br.nextLine());
- Gragjanin[] g = new Gragjanin[N];
- for(int i = 1; i <= N; i++){
- String imePrezime = br.nextLine();
- int lKarta = Integer.parseInt(br.nextLine());
- int pasos = Integer.parseInt(br.nextLine());
- int vozacka = Integer.parseInt(br.nextLine());
- Gragjanin covek = new Gragjanin(imePrezime, lKarta, pasos, vozacka);
- g[i - 1] = covek;
- }
- print(g);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement