Advertisement
CR7CR7

Kindergarthen

Apr 6th, 2023
884
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.67 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5.  
  6. // Клас за тестване на системата
  7. public class Test {
  8.   public static void main(String[] args) {
  9.     // Създаване на обект от тип Scanner за четене от стандартния вход
  10.     Scanner scanner = new Scanner(System.in);
  11.  
  12.     // Четене на първия ред от входа - името и свободните места на детската градина
  13.     String[] kindergartenInput = scanner.nextLine().split(" ");
  14.     String kindergartenName = kindergartenInput[0];
  15.     int kindergartenFreeSpots = Integer.parseInt(kindergartenInput[1]);
  16.  
  17.     // Създаване на обект от тип Kindergarten с данните от входа
  18.     Kindergarten kindergarten = new Kindergarten(kindergartenName, kindergartenFreeSpots);
  19.  
  20.     // Четене на втория ред от входа - броят на децата
  21.     int n = Integer.parseInt(scanner.nextLine());
  22.  
  23.     // Създаване на списък от обекти от тип Child за съхранение на децата
  24.     ArrayList<Child> children = new ArrayList<Child>();
  25.  
  26.     // Четене на следващите n реда от входа - името и точките на всяко дете
  27.     for (int i = 0; i < n; i++) {
  28.       String[] childInput = scanner.nextLine().split(" ");
  29.       String childName = childInput[0];
  30.       int childPoints = Integer.parseInt(childInput[1]);
  31.  
  32.       // Създаване на обект от тип Child с данните от входа
  33.       Child child = new Child(childName, childPoints);
  34.  
  35.       // Добавяне на обекта към списъка с децата
  36.       children.add(child);
  37.     }
  38.  
  39.     // Сортиране на списъка с децата по точки в низходящ ред (от най-много към най-малко)
  40.     Collections.sort(children, new Comparator<Child>() {
  41.       public int compare(Child c1, Child c2) {
  42.         return c2.getPoints() - c1.getPoints();
  43.       }
  44.     });
  45.  
  46.     // Създаване на два списъка - един за приетите деца и един за неприетите деца
  47.     ArrayList<Child> acceptedChildren = new ArrayList<Child>();
  48.     ArrayList<Child> unacceptedChildren = new ArrayList<Child>();
  49.  
  50.     // Обхождане на списъка с децата и проверка дали могат да бъдат приети в детската градина
  51.     for (Child child : children) {
  52.       // Проверка дали детската градина има свободни места
  53.       if (kindergarten.hasFreeSpots()) {
  54.         // Добавяне на детето към списъка с приетите деца
  55.         acceptedChildren.add(child);
  56.         // Намаляване на свободните места в детската градина с едно
  57.         kindergarten.decreaseFreeSpots();
  58.       } else {
  59.         // Добавяне на детето към списъка с неприетите деца
  60.         unacceptedChildren.add(child);
  61.       }
  62.     }
  63.  
  64.     // Извеждане на резултата на стандартния изход
  65.  
  66.     // Проверка дали има приети деца
  67.     if (acceptedChildren.size() > 0) {
  68.     Извеждане на резултата на стандартния изход
  69.  
  70.     // Проверка дали има приети деца
  71.     if (acceptedChildren.size() > 0) {
  72.       // Извеждане на имената на приетите деца на първия ред, разделени с интервал
  73.       for (Child child : acceptedChildren) {
  74.         System.out.print(child.getName() + " ");
  75.       }
  76.       // Преход на нов ред
  77.       System.out.println();
  78.     } else {
  79.       // Извеждане на "n/a" на първия ред, ако няма приети деца
  80.       System.out.println("n/a");
  81.     }
  82.  
  83.     // Проверка дали има неприети деца
  84.     if (unacceptedChildren.size() > 0) {
  85.       // Извеждане на имената на неприетите деца на втория ред, разделени с интервал
  86.       for (Child child : unacceptedChildren) {
  87.         System.out.print(child.getName() + " ");
  88.       }
  89.       // Преход на нов ред
  90.       System.out.println();
  91.     } else {
  92.       // Извеждане на "n/a" на втория ред, ако няма неприети деца
  93.       System.out.println("n/a");
  94.     }
  95.   }
  96. }
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement