Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.Scanner;
- class ArrayQueue<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 length;
- }
- public E peek() {
- if (length > 0)
- return elems[front];
- else {
- System.out.println("Redicata e prazna");
- return null;
- }
- }
- public void clear() {
- length = 0;
- front = rear = 0;
- }
- 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 {
- System.out.println("Redicata e prazna");
- return null;
- }
- }
- @Override
- public String toString() {
- return "ArrayQueue{" +
- "elems=" + Arrays.toString(elems) +
- '}';
- }
- }
- public class Kolokvium {
- 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]);
- //System.out.println(brAsistentiPredmet[i]+"\n");
- }
- 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];
- }
- /*
- Се организира колоквиумска недела на ФИНКИ и за таа цел асистентите се доделуваат за чување на испити.
- За таа цел се прави редица од асистентите во која на почеток се најмладите асистенти, а на крај се највозрасните.
- Потоа се даваат предметите и по колку асистенти се потребни за чување на секој предмет.
- Има некои асистенти кои се отсутни во тековната колоквиумска недела. Затоа дополнително се дава список кои од асистентите се отсутни. Асистентите се доделуваат на следниот начин: Прво се доделуваат најмладите, а на крај најстарите, со тоа што ако некој асистент е отсутен тој се игнорира во редицата. После секое доделување на предмет асистентот се сместува на крај на редицата (т.е. ако на секој асистент му се доделил за чување предмет, а има потреба од уште асистенти, повторно се започнува од најмладите).
- Влез:
- Се дава прво бројот на асистенти и имињата на асистентите од најмлад до најстар. Следно се дава бројот на предмети за кои се потребни асистенти, па се наведуваат предметите и по колку асистенти се потребни за секој предмет. Потоа се дава бројот на асистенти кои се отсутни и списокот на тековно отсутните асистенти. На излез се печати предмет, па асистенти задолжени за чување на тој предмет (за секој од дадените предмети).
- */
- System.out.println(Arrays.toString(brAsistentiPredmet));
- System.out.println(brAsistenti + " " + brPredmeti + " " + brOtsutni);
- System.out.println(redAsistenti);
- System.out.println(redPredmeti);
- ArrayQueue<String> assisstants = new ArrayQueue<String>(50);
- /* validate assistants */
- while (!redAsistenti.isEmpty()) {
- String temp = redAsistenti.dequeue();
- for (int j = 0; j < imeOtsutni.length; j++) {
- if (!temp.equals(imeOtsutni[j])) {
- assisstants.enqueue(temp);
- }
- }
- }
- int j = 0;
- System.out.println(assisstants);
- while (!redPredmeti.isEmpty()){
- String subject = redPredmeti.dequeue();
- System.out.println(subject);
- System.out.println(brAsistentiPredmet[j]);
- for (int k = 0; k < brAsistentiPredmet[j]; k++) {
- String temp = assisstants.dequeue();
- System.out.println(temp);
- assisstants.enqueue(temp);
- }
- j++;
- }
- }
- }
- /*
- 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
- */
Advertisement
Add Comment
Please, Sign In to add comment