Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- public class DoctorOffice {
- private static final List<String> queue = new ArrayList<>();
- private static final HashMap<String, Integer> names = new HashMap<>();
- private static final StringBuilder builder = new StringBuilder();
- private static final String SUCCESS = "OK\n";
- private static final String ERROR = "Error\n";
- public static void main(String[] args) throws IOException {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- String input = in.readLine();
- while (!input.equals("End")) {
- String[] commandParameters = input.split(" ");
- switch (commandParameters[0]) {
- case "Append":
- append(commandParameters);
- break;
- case "Insert":
- insert(commandParameters);
- break;
- case "Find":
- find(commandParameters);
- break;
- case "Examine":
- examine(commandParameters);
- break;
- }
- input = in.readLine();
- }
- System.out.println(builder);
- }
- private static void find(String[] commandParameters) {
- String nameToFind = commandParameters[1];
- if (names.containsKey(nameToFind)) {
- builder.append(names.get(nameToFind).toString());
- } else {
- builder.append("0");
- }
- builder.append("\n");
- }
- private static void examine(String[] commandParameters) {
- int numberOFPeople = Integer.parseInt(commandParameters[1]);
- if (numberOFPeople <= queue.size()) {
- StringBuilder sb = new StringBuilder();
- int i = 0;
- while (i < numberOFPeople) {
- sb.append(String.format("%s ", queue.get(0)));
- names.put(queue.get(0), names.get(queue.get(0)) - 1);
- queue.remove(0);
- i++;
- }
- sb.setLength(sb.length() - 1);
- builder.append(sb);
- } else {
- builder.append("Error");
- }
- builder.append("\n");
- }
- private static void insert(String[] commandParameters) {
- int positionToInsert = Integer.parseInt(commandParameters[1]);
- String nameToInsert = commandParameters[2];
- if (positionToInsert >= 0 && positionToInsert <= queue.size()) {
- queue.add(positionToInsert, nameToInsert);
- if (!names.containsKey(nameToInsert)) {
- names.put(nameToInsert, 0);
- }
- names.put(nameToInsert, names.get(nameToInsert) + 1);
- builder.append(SUCCESS);
- } else {
- builder.append(ERROR);
- }
- }
- private static void append(String[] commandParameters) {
- String nameToAppend = commandParameters[1];
- queue.add(nameToAppend);
- if (!names.containsKey(nameToAppend)) {
- names.put(nameToAppend, 0);
- }
- names.put(nameToAppend, names.get(nameToAppend) + 1);
- builder.append(SUCCESS);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement