Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**Колоквиум
- Се организира колоквиумска недела на ФИНКИ и за таа цел асистентите се доделуваат за чување на испити.
- За таа цел се прави редица од асистентите во која на почеток се најмладите асистенти, а на крај се највозрасните.
- Потоа се даваат предметите и по колку асистенти се потребни за чување на секој предмет.
- Има некои асистенти кои се отсутни во тековната колоквиумска недела.
- Затоа дополнително се дава список кои од асистентите се отсутни.
- Асистентите се доделуваат на следниот начин:
- Прво се доделуваат најмладите, а на крај најстарите, со тоа што ако некој асистент е отсутен тој се игнорира во редицата.
- После секое доделување на предмет асистентот се сместува на крај на редицата (т.е. ако на секој асистент му се доделил за чување предмет, а има потреба од уште асистенти, повторно се започнува од најмладите).
- Влез: Се дава прво бројот на асистенти и имињата на асистентите од најмлад до најстар.
- Следно се дава бројот на предмети за кои се потребни асистенти, па се наведуваат предметите и по колку асистенти се потребни за секој предмет.
- Потоа се дава бројот на асистенти кои се отсутни и списокот на тековно отсутните асистенти.
- На излез се печати предмет, па асистенти задолжени за чување на тој предмет (за секој од дадените предмети).
- Име на класа (за Јава): Kolokvium
- Забелешка: При реализација на задачите МОРА да се користат дадените структури, а не да користат помошни структури како низи или сл.
- Sample input
- 4
- IlinkaIvanoska
- IgorKulev
- MagdalenaKostoska
- HristinaMihajloska
- 3
- APS 3
- MIS 1
- OOS 2
- 1
- HristinaMihajloska
- Sample output
- APS
- 3
- IlinkaIvanoska
- IgorKulev
- MagdalenaKostoska
- MIS
- 1
- IlinkaIvanoska
- OOS
- 2
- IgorKulev
- MagdalenaKostoska
- */
- //CODE
- import java.util.NoSuchElementException;
- import java.util.Scanner;
- class SLLNode<E> {
- protected E element;
- protected SLLNode<E> succ;
- public SLLNode(E elem, SLLNode<E> succ) {
- this.element = elem;
- this.succ = succ;
- }
- @Override
- public String toString() {
- return element.toString();
- }
- }
- interface Queue<E> {
- public boolean isEmpty();
- public int size();
- public E peek();
- public void clear();
- public void enqueue(E x);
- public E dequeue();
- }
- class ArrayQueue<E> implements Queue<E> {
- E[] elems;
- int length, front, rear;
- @SuppressWarnings("unchecked")
- public ArrayQueue (int maxlength) {
- elems = (E[]) new Object[maxlength];
- clear();
- }
- public boolean isEmpty () {
- return (length == 0);
- }
- public int size () {
- return elems.length;
- }
- public E peek () {
- if (length > 0)
- return elems[front];
- else
- throw new NoSuchElementException();
- }
- public void clear () {
- length = 0;
- front = rear = 0; // arbitrary
- }
- public void enqueue (E x) {
- elems[rear++] = x;
- if (rear == elems.length) rear = 0;
- length++;
- }
- public E dequeue () {
- if (length > 0) {
- E frontmost = elems[front];
- elems[front++] = null;
- if (front == elems.length) front = 0;
- length--;
- return frontmost;
- } else
- throw new NoSuchElementException();
- }
- }
- public class Kolokvium {
- private static boolean otstutni(String[] imeOtsutni, String asistent) {
- for (int i = 0; i < imeOtsutni.length; i++) {
- if (imeOtsutni[i].equals(asistent))
- return true;
- }
- return false;
- }
- private static void Kolokvium(ArrayQueue<String> redAsistenti, ArrayQueue<String> redPredmeti,
- Integer[] brAsistentiPredmet, String[] imeOtsutni) {
- int index = 0;
- while (!redPredmeti.isEmpty()) {
- System.out.println(redPredmeti.dequeue());
- System.out.println(brAsistentiPredmet[index]);
- int count = brAsistentiPredmet[index];
- ++index;
- while (count > 0) {
- String asistent = redAsistenti.dequeue();
- if (!otstutni(imeOtsutni, asistent)) {
- System.out.println(asistent);
- redAsistenti.enqueue(asistent);
- --count;
- }
- }
- }
- }
- public static void main(String[] args) {
- Scanner br = new Scanner(System.in);
- ArrayQueue<String> redAsistenti = new ArrayQueue<String>(50);
- ArrayQueue<String> redPredmeti = new ArrayQueue<String>(50);
- int i, brAsistenti, brPredmeti, brOtsutni;
- brAsistenti = Integer.parseInt(br.nextLine());
- String[] imeAsistenti = new String[brAsistenti];
- for (i = 0; i < brAsistenti; i++) {
- String red = br.nextLine();
- String[] pom = red.split(" ");
- imeAsistenti[i] = pom[0];
- redAsistenti.enqueue(imeAsistenti[i]);
- }
- brPredmeti = Integer.parseInt(br.nextLine());
- String[] imePredmeti = new String[brPredmeti];
- Integer[] brAsistentiPredmet = new Integer[brPredmeti];
- for (i = 0; i < brPredmeti; i++) {
- String red = br.nextLine();
- String[] pom = red.split(" ");
- imePredmeti[i] = pom[0];
- redPredmeti.enqueue(imePredmeti[i]);
- brAsistentiPredmet[i] = Integer.parseInt(pom[1]);
- }
- brOtsutni = Integer.parseInt(br.nextLine());
- String[] imeOtsutni = new String[brOtsutni];
- for (i = 0; i < brOtsutni; i++) {
- String red = br.nextLine();
- String[] pom = red.split(" ");
- imeOtsutni[i] = pom[0];
- }
- Kolokvium(redAsistenti, redPredmeti, brAsistentiPredmet, imeOtsutni);
- br.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement