Filip_Markoski

[ADS] Konsultacii

Nov 5th, 2017
597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.24 KB | None | 0 0
  1. import java.sql.Array;
  2. import java.util.Arrays;
  3. import java.util.Scanner;
  4.  
  5. class ArrayQueue<E> {
  6.     E[] elems;
  7.     int length, front, rear;
  8.  
  9.     @SuppressWarnings("unchecked")
  10.     public ArrayQueue(int maxlength) {
  11.         elems = (E[]) new Object[maxlength];
  12.         clear();
  13.     }
  14.  
  15.     public boolean isEmpty() {
  16.         return (length == 0);
  17.     }
  18.  
  19.     public int size() {
  20.         return length;
  21.     }
  22.  
  23.     public E peek() {
  24.         if (length > 0)
  25.             return elems[front];
  26.         else {
  27.             System.out.println("Redicata e prazna");
  28.             return null;
  29.         }
  30.     }
  31.  
  32.     public void clear() {
  33.         length = 0;
  34.         front = rear = 0;
  35.     }
  36.  
  37.     public void enqueue(E x) {
  38.         elems[rear++] = x;
  39.         if (rear == elems.length)
  40.             rear = 0;
  41.         length++;
  42.     }
  43.  
  44.     public E dequeue() {
  45.         if (length > 0) {
  46.             E frontmost = elems[front];
  47.             elems[front++] = null;
  48.             if (front == elems.length)
  49.                 front = 0;
  50.             length--;
  51.             return frontmost;
  52.         } else {
  53.             System.out.println("Redicata e prazna");
  54.             return null;
  55.         }
  56.     }
  57.  
  58.     @Override
  59.     public String toString() {
  60.         return "ArrayQueue{" +
  61.                 "elems=" + Arrays.toString(elems) +
  62.                 '}';
  63.     }
  64. }
  65.  
  66. public class Konsultacii {
  67.     public static void main(String[] args) {
  68.  
  69.         Scanner br = new Scanner(System.in);
  70.  
  71.         ArrayQueue<String> redKratkiPrasanja = new ArrayQueue<String>(50);
  72.         ArrayQueue<String> redZadaci = new ArrayQueue<String>(50);
  73.         ArrayQueue<String> redKratkiPrasanjaZadaci = new ArrayQueue<String>(50);
  74.  
  75.  
  76.         int i, brStudentiKratkiPrasanja, brStudentiZadaci, brStudentiKratkiPrasanjaZadaci;
  77.  
  78.         brStudentiKratkiPrasanja = Integer.parseInt(br.nextLine());
  79.         String[] imeStudentiKratkiPrasanja = new String[brStudentiKratkiPrasanja];
  80.  
  81.         for (i = 0; i < brStudentiKratkiPrasanja; i++) {
  82.             String red = br.nextLine();
  83.             String[] pom = red.split(" ");
  84.             imeStudentiKratkiPrasanja[i] = pom[0];
  85.             redKratkiPrasanja.enqueue(imeStudentiKratkiPrasanja[i]);
  86.         }
  87.  
  88.         brStudentiZadaci = Integer.parseInt(br.nextLine());
  89.         String[] imeStudentiZadaci = new String[brStudentiZadaci];
  90.  
  91.         for (i = 0; i < brStudentiZadaci; i++) {
  92.             String red = br.nextLine();
  93.             String[] pom = red.split(" ");
  94.             imeStudentiZadaci[i] = pom[0];
  95.             redZadaci.enqueue(imeStudentiZadaci[i]);
  96.         }
  97.  
  98.         brStudentiKratkiPrasanjaZadaci = Integer.parseInt(br.nextLine());
  99.         String[] imeStudentiKratkiPrasanjaZadaci = new String[brStudentiKratkiPrasanjaZadaci];
  100.  
  101.         for (i = 0; i < brStudentiKratkiPrasanjaZadaci; i++) {
  102.             String red = br.nextLine();
  103.             String[] pom = red.split(" ");
  104.             imeStudentiKratkiPrasanjaZadaci[i] = pom[0];
  105.             redKratkiPrasanjaZadaci.enqueue(imeStudentiKratkiPrasanjaZadaci[i]);
  106.         }
  107.  
  108.         /*
  109.         System.out.println();
  110.         */
  111.  
  112.         System.out.println(redKratkiPrasanjaZadaci);
  113.         System.out.println(Arrays.toString(imeStudentiKratkiPrasanjaZadaci));
  114.         System.out.println();
  115.  
  116.         while (!redKratkiPrasanjaZadaci.isEmpty()) {
  117.             String temp = redKratkiPrasanjaZadaci.dequeue();
  118.             redKratkiPrasanja.enqueue(temp);
  119.             redZadaci.enqueue(temp);
  120.         }
  121.  
  122.         System.out.println(redKratkiPrasanja);
  123.         System.out.println(redZadaci);
  124.         System.out.println();
  125.  
  126.  
  127.         int max = Math.max(brStudentiKratkiPrasanja, brStudentiZadaci) + brStudentiKratkiPrasanjaZadaci;
  128.         System.out.println(max);
  129.         int count = 0;
  130.         while (count < max) {
  131.             if (!redKratkiPrasanja.isEmpty()) {
  132.                 String question = redKratkiPrasanja.dequeue();
  133.                 System.out.println(question);
  134.             }
  135.             if (!redZadaci.isEmpty()) {
  136.                 String exercise = redZadaci.dequeue();
  137.                 System.out.println(exercise);
  138.             }
  139.             count++;
  140.         }
  141.  
  142.  
  143.     }
  144. }
  145. /*
  146. Пред да започне колоквиумската недела на ФИНКИ се организираат консултации по предметот Алгоритми и структури на податоци. Бидејќи има голем број на заинтересирани студенти за консултации се објавува анкета на курсот за да се пријават студентите и тоа има два избора на анкетата (може да се изберат и двата):
  147. 1)  Имам кратки прашања
  148. 2)  Ми треба објаснување за некои задачи
  149. 3)  И кратки прашања и објаснување за задачи
  150.  
  151. Асистентката Магдалена ги држи консултациите.
  152. Студентите се примаат на консултации според следниот редослед:
  153. прво се примаат по еден студент од оние кои имаат кратки прашања според редоследот по кој се пријавиле.
  154. Ако нема еден од овие се пушта студенти кои кои имаат прашања и за задачи за да се исполни квотата од 1 студент,
  155. ама од овој прашува само кратки прашања.
  156. Ако се пуштил студент кој има и прашања за задачи тој се преместува на крај на редицата за задачи.
  157. Откако ќе се заврши овој студент со кратки прашања, се продолжува со оние кои имаат нејасни задачи. Од овие студенти се примаат 1. Ако нема еден од овие се пушта студент кој има прашања и за задачи за да се исполни квотата од 1 студент за задачи, ама овој прашува само за задачи, и потоа се преместува на крајот на редицата за кратки прашања. Понатаму се продолжува на истиот начин со тоа што за студентите кои се пријавиле и за задачи и за прашања влегуваат откако ќе се испразни редот со само кратки прашања или само со задачи. Студентите кои се пријавиле и за прашања и задачи, откако ќе завршат со прашањата се преместуваат на крај на редицата за задачи, и обратно. Кој ќе биде конечниот редослед на влегување?
  158.  
  159. Влез: Се дава прво бројот на студенти кои се пријавиле за кратки прашања,
  160. а потоа се наведуваат студентите според редоследот на пријавување за кратки прашања,
  161. потоа истото за студентите кои се пријавиле само за задачи,
  162. па на крај студентите кои се пријавиле и за двете.
  163. На излез се печатат студентите според редоследот по кој влегле на консултации.
  164.  
  165.  
  166.  
  167. Sample input
  168. 4
  169. IlinkaIvanoska
  170. IgorKulev
  171. MagdalenaKostoska
  172. HristinaMihajloska
  173. 2
  174. AnastasMishev
  175. VladimirTrajkovik
  176. 1
  177. SlobodanKalajdziski
  178.  
  179. Sample output
  180. IlinkaIvanoska
  181. AnastasMishev
  182. IgorKulev
  183. VladimirTrajkovik
  184. MagdalenaKostoska
  185. SlobodanKalajdziski
  186. HristinaMihajloska
  187. SlobodanKalajdziski
  188.  
  189. 4
  190. IlinkaIvanoska
  191. IgorKulev
  192. MagdalenaKostoska
  193. HristinaMihajloska
  194. 2
  195. AnastasMishev
  196. VladimirTrajkovik
  197. 2
  198. SlobodanKalajdziski
  199. FilipMarkoski
  200.  
  201. 6
  202. IlinkaIvanoska
  203. AnastasMishev
  204. IgorKulev
  205. VladimirTrajkovik
  206. MagdalenaKostoska
  207. SlobodanKalajdziski
  208. HristinaMihajloska
  209. FilipMarkoski
  210. SlobodanKalajdziski
  211. FilipMarkoski
  212. */
Advertisement
Add Comment
Please, Sign In to add comment