Advertisement
brsjak

АПС - Колоквиум Проблем

Sep 15th, 2019
1,204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.11 KB | None | 0 0
  1. /*
  2. Се организира прв колоквиум по предметот Алгоритми и структури на податоци. За таа цел се отвара анкета по предметот на која студентите се пријавуваат. Анкетата има дадено 2 избори:
  3.  
  4. 1)  Полагам во било кој термин
  5.  
  6. 2)  Испитот ми се преклопува со Математика
  7.  
  8. Студентите се поставуваат во термините според редоследите во кои се примени (почнувајќи од првиот). Сите студенти сакаат да полагаат колку е можно порано па затоа дел од студентите мамат и во анкетата наведуваат дека истиот ден полагаат и Математика. Асистентите бараат список на студенти кои полагаат Математика и добиваат. Потоа се започнува со распределба на студентите во термини: прво во термините се доделуваат студентите кои се пријавиле дека полагаат и Математика (по редоследот по кој се пријавиле), меѓутоа секој од овие студенти се проверува дали навистина полага и Математика и ако мамел се сместува на крај од списокот на студенти кои избрале дека полагаат било кој термин. Потоа се изминуваат останатите студенти и се доделуваат во термини.
  9.  
  10. Влез: Се дава прво капацитетот на студенти по термин (т.е. по колку студенти во еден термин може да полагаат). Следно се дава бројот и списокот на студенти кои истиот ден полагаат и Математика (според редоследот по кој се пријавиле). Потоа се дава бројот и списокот на останатите студенти (според редоследот по кој се пријавиле). На крај се дава број и список на студенти кои навистина полагаат Математика. На излез се печати број на термин, па студентите кои полагаат во тој термин.
  11.  
  12. Име на класа (за Јава): Kolokvium
  13.  
  14. Делумно решение: Задачата се смета за делумно решена доколку се поминати 9 тест примери.
  15.  
  16. Забелешка: При реализација на задачите МОРА да се користат дадените структури, а не да користат помошни структури како низи или сл.
  17. */
  18.  
  19. import java.util.Collection;
  20. import java.util.Iterator;
  21. import java.util.NoSuchElementException;
  22. import java.util.Queue;
  23. import java.util.Scanner;
  24. import java.util.*;
  25. import java.io.*;
  26.  
  27. class ArrayQueue<E> implements Queue<E> {
  28.  
  29.     // Redicata e pretstavena na sledniot nacin:
  30.     // length go sodrzi brojot na elementi.
  31.     // Ako length > 0, togash elementite na redicata se zachuvani vo elems[front...rear-1]
  32.     // Ako rear > front, togash vo  elems[front...maxlength-1] i elems[0...rear-1]
  33.     E[] elems;
  34.     int length, front, rear;
  35.  
  36.     // Konstruktor ...
  37.  
  38.     @SuppressWarnings("unchecked")
  39.     public ArrayQueue (int maxlength) {
  40.         elems = (E[]) new Object[maxlength];
  41.         clear();
  42.     }
  43.  
  44.     public boolean isEmpty () {
  45.         // Vrakja true ako i samo ako redicata e prazena.
  46.         return (length == 0);
  47.     }
  48.  
  49.     public int size () {
  50.         // Ja vrakja dolzinata na redicata.
  51.         return length;
  52.     }
  53.  
  54.     public E peek () {
  55.         // Go vrakja elementot na vrvot t.e. pocetokot od redicata.
  56.         if (length > 0)
  57.             return elems[front];
  58.         else
  59.             throw new NoSuchElementException();
  60.     }
  61.  
  62.     public void clear () {
  63.         // Ja prazni redicata.
  64.         length = 0;
  65.         front = rear = 0;  // arbitrary
  66.     }
  67.  
  68.     public void enqueue (E x) {
  69.         // Go dodava x na kraj od redicata.
  70.         elems[rear++] = x;
  71.         if (rear == elems.length)  rear = 0;
  72.         length++;
  73.     }
  74.  
  75.     public E dequeue () {
  76.         // Go otstranuva i vrakja pochetniot element na redicata.
  77.         if (length > 0) {
  78.             E frontmost = elems[front];
  79.             elems[front++] = null;
  80.             if (front == elems.length)  front = 0;
  81.             length--;
  82.             return frontmost;
  83.         } else
  84.             throw new NoSuchElementException();
  85.     }
  86.  
  87.     @Override
  88.     public boolean addAll(Collection<? extends E> arg0) {
  89.         // TODO Auto-generated method stub
  90.         return false;
  91.     }
  92.  
  93.     @Override
  94.     public boolean contains(Object arg0) {
  95.         // TODO Auto-generated method stub
  96.         return false;
  97.     }
  98.  
  99.     @Override
  100.     public boolean containsAll(Collection<?> arg0) {
  101.         // TODO Auto-generated method stub
  102.         return false;
  103.     }
  104.  
  105.     @Override
  106.     public Iterator<E> iterator() {
  107.         // TODO Auto-generated method stub
  108.         return null;
  109.     }
  110.  
  111.     @Override
  112.     public boolean remove(Object arg0) {
  113.         // TODO Auto-generated method stub
  114.         return false;
  115.     }
  116.  
  117.     @Override
  118.     public boolean removeAll(Collection<?> arg0) {
  119.         // TODO Auto-generated method stub
  120.         return false;
  121.     }
  122.  
  123.     @Override
  124.     public boolean retainAll(Collection<?> arg0) {
  125.         // TODO Auto-generated method stub
  126.         return false;
  127.     }
  128.  
  129.     @Override
  130.     public Object[] toArray() {
  131.         // TODO Auto-generated method stub
  132.         return null;
  133.     }
  134.  
  135.     @Override
  136.     public <T> T[] toArray(T[] arg0) {
  137.         // TODO Auto-generated method stub
  138.         return null;
  139.     }
  140.  
  141.     @Override
  142.     public boolean add(E arg0) {
  143.         // TODO Auto-generated method stub
  144.         return false;
  145.     }
  146.  
  147.     @Override
  148.     public E element() {
  149.         // TODO Auto-generated method stub
  150.         return null;
  151.     }
  152.  
  153.     @Override
  154.     public boolean offer(E arg0) {
  155.         // TODO Auto-generated method stub
  156.         return false;
  157.     }
  158.  
  159.     @Override
  160.     public E poll() {
  161.         // TODO Auto-generated method stub
  162.         return null;
  163.     }
  164.  
  165.     @Override
  166.     public E remove() {
  167.         // TODO Auto-generated method stub
  168.         return null;
  169.     }
  170. }
  171. public class Kolokvium {
  172.  
  173.     public static void main(String[] args) throws NumberFormatException, IOException {
  174.         // TODO Auto-generated method stub
  175.         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  176.         int n = Integer.parseInt(in.readLine());
  177.         ArrayQueue<String> matematika = new ArrayQueue<String>(2*n+1);
  178.         ArrayQueue<String> ostanati = new ArrayQueue<String>(2*n+1);
  179.         ArrayQueue<String> realMatematika = new ArrayQueue<String>(2*n+1);
  180.         ArrayQueue<String> matematikaFinal = new ArrayQueue<String>(2*n+1);
  181.        
  182.         n=Integer.parseInt(in.readLine());
  183.        
  184.         for(int i=0;i<n;i++) {
  185.             matematika.enqueue(in.readLine());
  186.         }
  187.        
  188.         n=Integer.parseInt(in.readLine());
  189.         for(int i=0;i<n;i++) {
  190.             ostanati.enqueue(in.readLine());
  191.         }
  192.        
  193.         n=Integer.parseInt(in.readLine());
  194.         for(int i=0;i<n;i++) {
  195.             realMatematika.enqueue(in.readLine());
  196.         }
  197.        
  198.         while(!matematika.isEmpty()){
  199.             String student = matematika.dequeue();
  200.             if(realMatematika.contains(student)) {
  201.                 matematikaFinal.enqueue(student);
  202.                
  203.                 System.out.println("REAL MATEMATIKA CONTAINS" +" " +  student);
  204.             }
  205.             else {
  206.                 ostanati.enqueue(student);
  207.                 System.out.println("REAL MATEMATIKA NE CONTAINES" + " " +student);
  208.             }
  209.         }
  210.         System.out.print("OSTANATI: ");
  211.         while(!ostanati.isEmpty()) {
  212.             System.out.print(ostanati.dequeue()+" ");
  213.         }
  214.         System.out.println("");
  215.         System.out.print("MATEMATIKA FINAL: ");
  216.         while(!matematikaFinal.isEmpty()) {
  217.             System.out.print(matematikaFinal.dequeue()+ " ");
  218.         }
  219.         System.out.println("");
  220.         System.out.print("MATEMATIKA STARTNO: ");
  221.         while(!matematika.isEmpty()) {
  222.             System.out.print(matematika.dequeue()+ " ");
  223.         }
  224.     }
  225.  
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement