Advertisement
dzocesrce

[APS] APS Colloquium

Aug 30th, 2023
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.66 KB | None | 0 0
  1. // kolokviumska od krajot na 2010s, me izmori fino i poshteno.
  2. // Studenti se prijavuvaat na anketa da polagaat APS vo bilo koj termin ili vo prviot termin dokolku polagaat istiot den nesto drugo. Arno ama asistentite dobivaat lista od studentite koi izlazale deka polagaat nesto drugo na anketata i tie se stavaat na krajot anketata polaganje vo bilo koj termin. Razgledaj input i output... Vo dvata termini polagaat n broj na studenti!
  3.  
  4. import java.util.Collection;
  5. import java.util.Iterator;
  6. import java.util.NoSuchElementException;
  7. import java.util.Queue;
  8. import java.util.Scanner;
  9. import java.util.*;
  10. import java.io.*;
  11. class ArrayQueue<E> implements Queue<E> {
  12.  
  13.     // Redicata e pretstavena na sledniot nacin:
  14.     // length go sodrzi brojot na elementi.
  15.     // Ako length > 0, togash elementite na redicata se zachuvani vo elems[front...rear-1]
  16.     // Ako rear > front, togash vo  elems[front...maxlength-1] i elems[0...rear-1]
  17.     E[] elems;
  18.     int length, front, rear;
  19.  
  20.     // Konstruktor ...
  21.  
  22.     @SuppressWarnings("unchecked")
  23.     public ArrayQueue (int maxlength) {
  24.         elems = (E[]) new Object[maxlength];
  25.         clear();
  26.     }
  27.  
  28.     public boolean isEmpty () {
  29.         // Vrakja true ako i samo ako redicata e prazena.
  30.         return (length == 0);
  31.     }
  32.  
  33.     public int size () {
  34.         // Ja vrakja dolzinata na redicata.
  35.         return length;
  36.     }
  37.  
  38.     public E peek () {
  39.         // Go vrakja elementot na vrvot t.e. pocetokot od redicata.
  40.         if (length > 0)
  41.             return elems[front];
  42.         else
  43.             throw new NoSuchElementException();
  44.     }
  45.  
  46.     public void clear () {
  47.         // Ja prazni redicata.
  48.         length = 0;
  49.         front = rear = 0;  // arbitrary
  50.     }
  51.  
  52.     public void enqueue (E x) {
  53.         // Go dodava x na kraj od redicata.
  54.         elems[rear++] = x;
  55.         if (rear == elems.length)  rear = 0;
  56.         length++;
  57.     }
  58.  
  59.     public E dequeue () {
  60.         // Go otstranuva i vrakja pochetniot element na redicata.
  61.         if (length > 0) {
  62.             E frontmost = elems[front];
  63.             elems[front++] = null;
  64.             if (front == elems.length)  front = 0;
  65.             length--;
  66.             return frontmost;
  67.         } else
  68.             throw new NoSuchElementException();
  69.     }
  70.  
  71.     @Override
  72.     public boolean addAll(Collection<? extends E> arg0) {
  73.         // TODO Auto-generated method stub
  74.         return false;
  75.     }
  76.  
  77.     @Override
  78.     public boolean contains(Object arg0) {
  79.         // TODO Auto-generated method stub
  80.         return false;
  81.     }
  82.  
  83.     @Override
  84.     public boolean containsAll(Collection<?> arg0) {
  85.         // TODO Auto-generated method stub
  86.         return false;
  87.     }
  88.  
  89.     @Override
  90.     public Iterator<E> iterator() {
  91.         // TODO Auto-generated method stub
  92.         return null;
  93.     }
  94.  
  95.     @Override
  96.     public boolean remove(Object arg0) {
  97.         // TODO Auto-generated method stub
  98.         return false;
  99.     }
  100.  
  101.     @Override
  102.     public boolean removeAll(Collection<?> arg0) {
  103.         // TODO Auto-generated method stub
  104.         return false;
  105.     }
  106.  
  107.     @Override
  108.     public boolean retainAll(Collection<?> arg0) {
  109.         // TODO Auto-generated method stub
  110.         return false;
  111.     }
  112.  
  113.     @Override
  114.     public Object[] toArray() {
  115.         // TODO Auto-generated method stub
  116.         return null;
  117.     }
  118.  
  119.     @Override
  120.     public <T> T[] toArray(T[] arg0) {
  121.         // TODO Auto-generated method stub
  122.         return null;
  123.     }
  124.  
  125.     @Override
  126.     public boolean add(E arg0) {
  127.         // TODO Auto-generated method stub
  128.         return false;
  129.     }
  130.  
  131.     @Override
  132.     public E element() {
  133.         // TODO Auto-generated method stub
  134.         return null;
  135.     }
  136.  
  137.     @Override
  138.     public boolean offer(E arg0) {
  139.         // TODO Auto-generated method stub
  140.         return false;
  141.     }
  142.  
  143.     @Override
  144.     public E poll() {
  145.         // TODO Auto-generated method stub
  146.         return null;
  147.     }
  148.  
  149.     @Override
  150.     public E remove() {
  151.         // TODO Auto-generated method stub
  152.         return null;
  153.     }
  154. }
  155. public class APSKolokvium {
  156.     public static void main(String[] args) {
  157.         Scanner input= new Scanner(System.in);
  158.         int n= Integer.parseInt(input.nextLine());
  159.         ArrayQueue<String> termin1= new ArrayQueue<String>(n);
  160.         ArrayQueue<String> termin2= new ArrayQueue<String>(n);
  161.         int numAnketa1= Integer.parseInt(input.nextLine());
  162.         int numAnketa2= Integer.parseInt(input.nextLine());
  163.         ArrayQueue<String> anketa1= new ArrayQueue<>(numAnketa1+numAnketa2);
  164.         ArrayQueue<String> anketa2= new ArrayQueue<>(numAnketa2+numAnketa1);
  165.         String[] studenti_anketa1= input.nextLine().split("\\s+");
  166.         for(int i=0;i<numAnketa1;i++){
  167.             anketa1.enqueue(studenti_anketa1[i]);
  168.         }
  169.         String[] studenti_anketa2= input.nextLine().split("\\s+");
  170.         for(int i=0;i<numAnketa2;i++){
  171.             anketa2.enqueue(studenti_anketa2[i]);
  172.         }
  173.         int numLazgovci= Integer.parseInt(input.nextLine());
  174.         String[] lazgovci= input.nextLine().split("\\s+");
  175.         int counter_termin1=0;
  176.         while(!anketa1.isEmpty()){
  177.             int flag=0;
  178.             if(numLazgovci!=0){
  179.                 for(int i=0;i<lazgovci.length;i++){
  180.                     //System.out.println(anketa1.peek()+ " "+ lazgovci[i]);
  181.                     if(anketa1.peek().equals(lazgovci[i])){
  182.                         anketa2.enqueue(anketa1.dequeue());
  183.                         flag=1;
  184.                         break;
  185.                     }
  186.                 }
  187.             }
  188.             if(flag==1) continue;
  189.             if(anketa1.isEmpty()) break;
  190.             if(counter_termin1==n) break;
  191.             termin1.enqueue(anketa1.dequeue());
  192.             counter_termin1++;
  193.         }
  194.         while(!anketa1.isEmpty()){
  195.             if(numLazgovci!=0){
  196.                 for(int i=0;i<lazgovci.length;i++){
  197.                     if(anketa1.peek().equals(lazgovci[i])) {
  198.                         anketa2.enqueue(anketa1.dequeue());
  199.                         continue;
  200.                     }
  201.                 }
  202.             }
  203.             if(counter_termin1==n)
  204.             termin2.enqueue(anketa1.dequeue());
  205.             else{
  206.                 termin1.enqueue(anketa1.dequeue());
  207.                 counter_termin1++;
  208.             }
  209.         }
  210.         while(!anketa2.isEmpty()){
  211.             if(counter_termin1==n){
  212.                 termin2.enqueue(anketa2.dequeue());
  213.             }
  214.             else{
  215.                 termin1.enqueue(anketa2.dequeue());
  216.                 counter_termin1++;
  217.             }
  218.  
  219.         }
  220.         System.out.print("TERMIN 1: ");
  221.         while(!termin1.isEmpty()) System.out.print(termin1.dequeue()+" ");
  222.         System.out.println();
  223.         System.out.print("TERMIN 2: ");
  224.         while(!termin2.isEmpty()) System.out.print(termin2.dequeue()+" ");
  225.     }
  226. }
  227. /*
  228. 4
  229. 5
  230. 3
  231. Ana Maja Despina Angela Mirjana
  232. Nono Dzoce Marski
  233. 3
  234. Maja Despina Ana
  235. TERMIN 1: Angela Mirjana Nono Dzoce
  236. TERMIN 2: Marski Ana Maja Despina
  237.  
  238. 4
  239. 7
  240. 1
  241. Ana Maja Despina Angela Mirjana Dzoce Marski
  242. Nono
  243. 2
  244. Despina Maja
  245. TERMIN 1: Ana Angela Mirjana Dzoce
  246. TERMIN 2: Marski Nono Maja Despina
  247.  
  248. 4
  249. 1
  250. 7
  251. Nono
  252. Ana Maja Despina Angela Mirjana Dzoce Marski
  253. 1
  254. Nono
  255. TERMIN 1: Ana Maja Despina Angela
  256. TERMIN 2: Mirjana Dzoce Marski Nono
  257.  
  258. 4
  259. 5
  260. 3
  261. Ana Maja Despina Angela Mirjana
  262. Nono Dzoce Marski
  263. 0
  264. Empty
  265. TERMIN 1: Ana Maja Despina Angela
  266. TERMIN 2: Mirjana Nono Dzoce Marski
  267.  
  268. 5
  269. 2
  270. 6
  271. Nono Dzoce
  272. Ana Maja Despina Angela Mirjana Jana
  273. 0
  274. Empty
  275. TERMIN 1: Nono Dzoce Ana Maja Despina
  276. TERMIN 2: Angela Mirjana Jana
  277.  
  278. 5
  279. 2
  280. 2
  281. Nono Dzoce
  282. Ana Maja
  283. 0
  284. Empty
  285. TERMIN 1: Nono Dzoce Ana Maja
  286. TERMIN 2:
  287.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement