Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Се организира прв колоквиум по предметот Алгоритми и структури на податоци. За таа цел се отвара анкета по предметот на која студентите се пријавуваат. Анкетата има дадено 2 избори:
- 1) Полагам во било кој термин
- 2) Испитот ми се преклопува со Математика
- Студентите се поставуваат во термините според редоследите во кои се примени (почнувајќи од првиот). Сите студенти сакаат да полагаат колку е можно порано па затоа дел од студентите мамат и во анкетата наведуваат дека истиот ден полагаат и Математика. Асистентите бараат список на студенти кои полагаат Математика и добиваат. Потоа се започнува со распределба на студентите во термини: прво во термините се доделуваат студентите кои се пријавиле дека полагаат и Математика (по редоследот по кој се пријавиле), меѓутоа секој од овие студенти се проверува дали навистина полага и Математика и ако мамел се сместува на крај од списокот на студенти кои избрале дека полагаат било кој термин. Потоа се изминуваат останатите студенти и се доделуваат во термини.
- Влез: Се дава прво капацитетот на студенти по термин (т.е. по колку студенти во еден термин може да полагаат). Следно се дава бројот и списокот на студенти кои истиот ден полагаат и Математика (според редоследот по кој се пријавиле). Потоа се дава бројот и списокот на останатите студенти (според редоследот по кој се пријавиле). На крај се дава број и список на студенти кои навистина полагаат Математика. На излез се печати број на термин, па студентите кои полагаат во тој термин.
- Име на класа (за Јава): Kolokvium
- Делумно решение: Задачата се смета за делумно решена доколку се поминати 9 тест примери.
- Забелешка: При реализација на задачите МОРА да се користат дадените структури, а не да користат помошни структури како низи или сл.
- */
- import java.util.Collection;
- import java.util.Iterator;
- import java.util.NoSuchElementException;
- import java.util.Queue;
- import java.util.Scanner;
- import java.util.*;
- import java.io.*;
- 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 class Kolokvium {
- public static void main(String[] args) throws NumberFormatException, IOException {
- // TODO Auto-generated method stub
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- int n = Integer.parseInt(in.readLine());
- ArrayQueue<String> matematika = new ArrayQueue<String>(2*n+1);
- ArrayQueue<String> ostanati = new ArrayQueue<String>(2*n+1);
- ArrayQueue<String> realMatematika = new ArrayQueue<String>(2*n+1);
- ArrayQueue<String> matematikaFinal = new ArrayQueue<String>(2*n+1);
- n=Integer.parseInt(in.readLine());
- for(int i=0;i<n;i++) {
- matematika.enqueue(in.readLine());
- }
- n=Integer.parseInt(in.readLine());
- for(int i=0;i<n;i++) {
- ostanati.enqueue(in.readLine());
- }
- n=Integer.parseInt(in.readLine());
- for(int i=0;i<n;i++) {
- realMatematika.enqueue(in.readLine());
- }
- while(!matematika.isEmpty()){
- String student = matematika.dequeue();
- if(realMatematika.contains(student)) {
- matematikaFinal.enqueue(student);
- System.out.println("REAL MATEMATIKA CONTAINS" +" " + student);
- }
- else {
- ostanati.enqueue(student);
- System.out.println("REAL MATEMATIKA NE CONTAINES" + " " +student);
- }
- }
- System.out.print("OSTANATI: ");
- while(!ostanati.isEmpty()) {
- System.out.print(ostanati.dequeue()+" ");
- }
- System.out.println("");
- System.out.print("MATEMATIKA FINAL: ");
- while(!matematikaFinal.isEmpty()) {
- System.out.print(matematikaFinal.dequeue()+ " ");
- }
- System.out.println("");
- System.out.print("MATEMATIKA STARTNO: ");
- while(!matematika.isEmpty()) {
- System.out.print(matematika.dequeue()+ " ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement