Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Луѓето доаѓаат наутро во МВР за да извадат еден или повеќе документи.
- Документите може да бидат:
- 1. Лична карта
- 2. Пасош
- 3. Возачка дозвола
- Кога се отвора шалтерот прво се услужуваат луѓето кои чекаат за лична карта, па потоа оние за пасош и на крај оние за возачка дозвола.
- Секој човек кога ќе дојде си застанува во редицата за соодветната исправа која ја вади (т.е. или во редицата за лични карти или во редицата за пасоши или во редицата за возачки дозволи). Доколку еден човек има повеќе документи за вадење прво вади лична карта, па пасош и на крај возачка. Така ако еден човек треба да вади и лична карта и возачка дозвола прво застанува во редицата за лични карти и откако ќе заврши таму оди на крајот на редицата за возачки дозволи.
- Влез: Првиот ред означува колку луѓе вкупно дошле во МВР. Потоа за секој човек се внесуваат четири реда, во првиот е името и презимето на човекот, а во останатите три реда се кажува кој документ соодветно (лична карта, пасош и возачка) треба да се земе, притоа 1 значи дека треба да се земе тој документ, 0 значи дека не треба да се земе.
- На пример:
- Aleksandar Aleksandrovski
- 1
- 0
- 1
- означува дека Александар Александровски ќе вади и лична карта и возачка дозвола, но нема да вади пасош.
- Излез: Ги печати имињата на луѓето по редоследот по кој завршуваат со вадење на документи.
- Име на класата (Java): MVR
- import java.util.Scanner;
- import java.util.Collection;
- import java.util.Iterator;
- import java.util.NoSuchElementException;
- import java.util.Queue;
- public class Main
- {
- public static class Gragjanin{
- String ime;
- int lKarta;
- int pasos;
- int vozacka;
- public Gragjanin(String ime, int lKarta, int pasos, int vozacka){
- this.ime=ime;
- this.lKarta=lKarta;
- this.pasos=pasos;
- this.vozacka=vozacka;
- }
- public int getlKarta() {
- return lKarta;
- }
- public void setlKarta(int lKarta) {
- this.lKarta = lKarta;
- }
- public int getPasos() {
- return pasos;
- }
- public void setPasos(int pasos) {
- this.pasos = pasos;
- }
- public int getVozacka() {
- return vozacka;
- }
- public void setVozacka(int vozacka) {
- this.vozacka = vozacka;
- }
- }
- public static class ArrayQueue<E> implements Queue<E> {
- // Redicata e pretstavena na sledniot nacin:
- // length go sodrzi brojot na elementi.
- // Ako length > 0, togash elementite na redicata se zachuvani vo elems[front...rear-1]
- // Ako rear > front, togash vo elems[front...maxlength-1] i elems[0...rear-1]
- E[] elems;
- int length, front, rear;
- // Konstruktor ...
- @SuppressWarnings("unchecked")
- public ArrayQueue (int maxlength) {
- elems = (E[]) new Object[maxlength];
- clear();
- }
- public boolean isEmpty () {
- // Vrakja true ako i samo ako redicata e prazena.
- return (length == 0);
- }
- public int size () {
- // Ja vrakja dolzinata na redicata.
- return length;
- }
- public E peek () {
- // Go vrakja elementot na vrvot t.e. pocetokot od redicata.
- if (length > 0)
- return elems[front];
- else
- throw new NoSuchElementException();
- }
- public void clear () {
- // Ja prazni redicata.
- length = 0;
- front = rear = 0; // arbitrary
- }
- public void enqueue (E x) {
- // Go dodava x na kraj od redicata.
- elems[rear++] = x;
- if (rear == elems.length) rear = 0;
- length++;
- }
- public E dequeue () {
- // Go otstranuva i vrakja pochetniot element na redicata.
- if (length > 0) {
- E frontmost = elems[front];
- elems[front++] = null;
- if (front == elems.length) front = 0;
- length--;
- return frontmost;
- } else
- throw new NoSuchElementException();
- }
- @Override
- public boolean addAll(Collection<? extends E> arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public boolean contains(Object arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public boolean containsAll(Collection<?> arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public Iterator<E> iterator() {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public boolean remove(Object arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public boolean removeAll(Collection<?> arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public boolean retainAll(Collection<?> arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public Object[] toArray() {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public <T> T[] toArray(T[] arg0) {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public boolean add(E arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public E element() {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public boolean offer(E arg0) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public E poll() {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public E remove() {
- // TODO Auto-generated method stub
- return null;
- }
- }
- public static void main(String[] args) {
- Scanner br = new Scanner(System.in);
- ArrayQueue<Gragjanin> licni = new ArrayQueue<>(50);
- ArrayQueue<Gragjanin> pasosi = new ArrayQueue<>(50);
- ArrayQueue<Gragjanin> vozacki = new ArrayQueue<>(50);
- int N = Integer.parseInt(br.nextLine());
- 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);
- if(lKarta == 1){
- licni.enqueue(covek);
- } else if(lKarta == 0 && pasos == 1){
- pasosi.enqueue(covek);
- } else if(lKarta == 0 && pasos == 0 && vozacka == 1){
- vozacki.enqueue(covek);
- }
- }
- while(!licni.isEmpty()){
- Gragjanin pom = licni.dequeue();
- if(pom.pasos == 0 && pom.vozacka == 0){
- System.out.println(pom.ime);
- } else if(pom.pasos == 1){
- pasosi.enqueue(pom);
- } else if(pom.vozacka == 1){
- vozacki.enqueue(pom);
- }
- }
- while(!pasosi.isEmpty()){
- Gragjanin pom = pasosi.dequeue();
- if(pom.vozacka == 0){
- System.out.println(pom.ime);
- } else if(pom.vozacka == 1){
- vozacki.enqueue(pom);
- }
- }
- while(!vozacki.isEmpty()){
- Gragjanin pom = vozacki.dequeue();
- System.out.println(pom.ime);
- }
- }
- }
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement