Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.Array;
- 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 Konsultacii {
- public static void main(String[] args) {
- Scanner br = new Scanner(System.in);
- ArrayQueue<String> redKratkiPrasanja = new ArrayQueue<String>(50);
- ArrayQueue<String> redZadaci = new ArrayQueue<String>(50);
- ArrayQueue<String> redKratkiPrasanjaZadaci = new ArrayQueue<String>(50);
- int i, brStudentiKratkiPrasanja, brStudentiZadaci, brStudentiKratkiPrasanjaZadaci;
- brStudentiKratkiPrasanja = Integer.parseInt(br.nextLine());
- String[] imeStudentiKratkiPrasanja = new String[brStudentiKratkiPrasanja];
- for (i = 0; i < brStudentiKratkiPrasanja; i++) {
- String red = br.nextLine();
- String[] pom = red.split(" ");
- imeStudentiKratkiPrasanja[i] = pom[0];
- redKratkiPrasanja.enqueue(imeStudentiKratkiPrasanja[i]);
- }
- brStudentiZadaci = Integer.parseInt(br.nextLine());
- String[] imeStudentiZadaci = new String[brStudentiZadaci];
- for (i = 0; i < brStudentiZadaci; i++) {
- String red = br.nextLine();
- String[] pom = red.split(" ");
- imeStudentiZadaci[i] = pom[0];
- redZadaci.enqueue(imeStudentiZadaci[i]);
- }
- brStudentiKratkiPrasanjaZadaci = Integer.parseInt(br.nextLine());
- String[] imeStudentiKratkiPrasanjaZadaci = new String[brStudentiKratkiPrasanjaZadaci];
- for (i = 0; i < brStudentiKratkiPrasanjaZadaci; i++) {
- String red = br.nextLine();
- String[] pom = red.split(" ");
- imeStudentiKratkiPrasanjaZadaci[i] = pom[0];
- redKratkiPrasanjaZadaci.enqueue(imeStudentiKratkiPrasanjaZadaci[i]);
- }
- /*
- System.out.println();
- */
- System.out.println(redKratkiPrasanjaZadaci);
- System.out.println(Arrays.toString(imeStudentiKratkiPrasanjaZadaci));
- System.out.println();
- while (!redKratkiPrasanjaZadaci.isEmpty()) {
- String temp = redKratkiPrasanjaZadaci.dequeue();
- redKratkiPrasanja.enqueue(temp);
- redZadaci.enqueue(temp);
- }
- System.out.println(redKratkiPrasanja);
- System.out.println(redZadaci);
- System.out.println();
- int max = Math.max(brStudentiKratkiPrasanja, brStudentiZadaci) + brStudentiKratkiPrasanjaZadaci;
- System.out.println(max);
- int count = 0;
- while (count < max) {
- if (!redKratkiPrasanja.isEmpty()) {
- String question = redKratkiPrasanja.dequeue();
- System.out.println(question);
- }
- if (!redZadaci.isEmpty()) {
- String exercise = redZadaci.dequeue();
- System.out.println(exercise);
- }
- count++;
- }
- }
- }
- /*
- Пред да започне колоквиумската недела на ФИНКИ се организираат консултации по предметот Алгоритми и структури на податоци. Бидејќи има голем број на заинтересирани студенти за консултации се објавува анкета на курсот за да се пријават студентите и тоа има два избора на анкетата (може да се изберат и двата):
- 1) Имам кратки прашања
- 2) Ми треба објаснување за некои задачи
- 3) И кратки прашања и објаснување за задачи
- Асистентката Магдалена ги држи консултациите.
- Студентите се примаат на консултации според следниот редослед:
- прво се примаат по еден студент од оние кои имаат кратки прашања според редоследот по кој се пријавиле.
- Ако нема еден од овие се пушта студенти кои кои имаат прашања и за задачи за да се исполни квотата од 1 студент,
- ама од овој прашува само кратки прашања.
- Ако се пуштил студент кој има и прашања за задачи тој се преместува на крај на редицата за задачи.
- Откако ќе се заврши овој студент со кратки прашања, се продолжува со оние кои имаат нејасни задачи. Од овие студенти се примаат 1. Ако нема еден од овие се пушта студент кој има прашања и за задачи за да се исполни квотата од 1 студент за задачи, ама овој прашува само за задачи, и потоа се преместува на крајот на редицата за кратки прашања. Понатаму се продолжува на истиот начин со тоа што за студентите кои се пријавиле и за задачи и за прашања влегуваат откако ќе се испразни редот со само кратки прашања или само со задачи. Студентите кои се пријавиле и за прашања и задачи, откако ќе завршат со прашањата се преместуваат на крај на редицата за задачи, и обратно. Кој ќе биде конечниот редослед на влегување?
- Влез: Се дава прво бројот на студенти кои се пријавиле за кратки прашања,
- а потоа се наведуваат студентите според редоследот на пријавување за кратки прашања,
- потоа истото за студентите кои се пријавиле само за задачи,
- па на крај студентите кои се пријавиле и за двете.
- На излез се печатат студентите според редоследот по кој влегле на консултации.
- Sample input
- 4
- IlinkaIvanoska
- IgorKulev
- MagdalenaKostoska
- HristinaMihajloska
- 2
- AnastasMishev
- VladimirTrajkovik
- 1
- SlobodanKalajdziski
- Sample output
- IlinkaIvanoska
- AnastasMishev
- IgorKulev
- VladimirTrajkovik
- MagdalenaKostoska
- SlobodanKalajdziski
- HristinaMihajloska
- SlobodanKalajdziski
- 4
- IlinkaIvanoska
- IgorKulev
- MagdalenaKostoska
- HristinaMihajloska
- 2
- AnastasMishev
- VladimirTrajkovik
- 2
- SlobodanKalajdziski
- FilipMarkoski
- 6
- IlinkaIvanoska
- AnastasMishev
- IgorKulev
- VladimirTrajkovik
- MagdalenaKostoska
- SlobodanKalajdziski
- HristinaMihajloska
- FilipMarkoski
- SlobodanKalajdziski
- FilipMarkoski
- */
Advertisement
Add Comment
Please, Sign In to add comment