Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.*;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- // String[] input = scanner.nextLine().split(" ");
- String input = scanner.nextLine();
- //key = department, value = patients in this department
- Map<String, String[][]> departments = new HashMap<>();//всички пациенти в едно отделение са брой стаи х брой легла
- //тук индексът на value е номера на стаята
- //key=doctor, value = set of patients
- Map<String, TreeSet<String>> doctorsAndPatients = new HashMap<>();
- // за тези два Map value ни е обект, който трябва да инициализирам
- while (!input.equals("Output")) {
- String[] tokens = input.split(" ");
- String department = tokens[0];
- String doctor = tokens[1] + " " + tokens[2];
- String patient = tokens[3];
- if (!departments.containsKey(department)) {
- departments.put(department, new String[20][3]);
- }
- //обхождаме за да визидм има ли свободни легла (в матрицата значи null)
- Initial:
- for (int i = 0; i < departments.get(department).length; i++) {
- for (int j = 0; j < departments.get(department)[i].length; j++) {
- if (departments.get(department)[i][j] == null) {
- departments.get(department)[i][j] = patient;
- break Initial;// за да си излезем и от двата цикъла иначе ще сложим един пациент навсякъде
- }
- }
- }
- if (!doctorsAndPatients.containsKey(doctor)) {
- doctorsAndPatients.put(doctor, new TreeSet<>());
- }
- doctorsAndPatients.get(doctor).add(patient);
- input = scanner.nextLine();
- }
- input = scanner.nextLine();
- while (!input.equals("End")) {
- //тук си правим проверките:
- String[] tokens = input.split(" ");//тук гледаме размера на масива за да видим коя команда имаме
- if (tokens.length == 1) {//Department
- String department = tokens[0];
- for (int i = 0; i < departments.get(department).length; i++) {
- for (int j = 0; j < departments.get(department)[i].length; j++) {
- if (departments.get(department)[i][j] != null) {
- System.out.println(departments.get(department)[i][j]);
- }
- }
- }
- } else if (tokens.length == 2) {//Department room ili Doctor(ime i familia)
- if (Character.isDigit(tokens[1].charAt(0))) {
- String department = tokens[0];
- int room = Integer.parseInt(tokens[1]) - 1;
- String[] patients = departments.get(department)[room];
- Arrays.stream(patients).filter(Objects::nonNull).sorted(String::compareTo).forEach(System.out::println);
- } else {
- String doctor = tokens[0] + " " + tokens[1];
- doctorsAndPatients.get(doctor).forEach(System.out::println);
- }
- }
- input = scanner.nextLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement