Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class RubberDuckDebuggers_01 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- //времена на програмисти
- String[] inputProgrammers = scanner.nextLine().split("\\s+");
- //брой на задачите
- String[] inputTasks = scanner.nextLine().split("\\s+");
- //вид патка -> бройки
- Map<String, Integer> ducksMap = new LinkedHashMap<>();
- ducksMap.put("Darth Vader Ducky", 0);
- ducksMap.put("Thor Ducky", 0);
- ducksMap.put("Big Blue Rubber Ducky", 0);
- ducksMap.put("Small Yellow Rubber Ducky", 0);
- ArrayDeque<Integer> programmers = new ArrayDeque<>(); //опашка
- Arrays.stream(inputProgrammers).mapToInt(Integer::parseInt).forEach(programmers::offer);
- Stack<Integer> tasks = new Stack<>(); //стек
- Arrays.stream(inputTasks).mapToInt(Integer::parseInt).forEach(tasks::push);
- //повтаряме: взимаме първия на опашката и последния в стека
- //спираме: ако свършат елементите в някоя от структурите
- //продължаваме: имаме елементи и в двете структури
- while (!programmers.isEmpty() && !tasks.isEmpty()) {
- int programmer = programmers.peek(); //първия елемент на опашката
- int task = tasks.peek(); //последния елемент в стека
- int needTime = programmer * task;
- //проверка каква патка купуваме спрямо нужното време
- if (needTime >= 0 && needTime <= 60) {
- //купуваме Darth Vader Ducky
- ducksMap.put("Darth Vader Ducky", ducksMap.get("Darth Vader Ducky") + 1);
- programmers.poll(); //премахва първия елемент от опашката
- tasks.pop(); //премахва последния елемент от стека
- } else if (needTime >= 61 && needTime <= 120) {
- //купуваме Thor Ducky
- ducksMap.put("Thor Ducky", ducksMap.get("Thor Ducky") + 1);
- programmers.poll(); //премахва първия елемент от опашката
- tasks.pop(); //премахва последния елемент от стека
- } else if (needTime >= 121 && needTime <= 180) {
- //купуваме Big Blue Rubber Ducky
- ducksMap.put("Big Blue Rubber Ducky", ducksMap.get("Big Blue Rubber Ducky") + 1);
- programmers.poll(); //премахва първия елемент от опашката
- tasks.pop(); //премахва последния елемент от стека
- } else if (needTime >= 181 && needTime <= 240) {
- //купуваме Small Yellow Rubber Ducky
- ducksMap.put("Small Yellow Rubber Ducky", ducksMap.get("Small Yellow Rubber Ducky") + 1);
- programmers.poll(); //премахва първия елемент от опашката
- tasks.pop(); //премахва последния елемент от стека
- } else {
- //needTime > 240
- programmers.offerLast(programmers.poll());
- tasks.push(tasks.pop() - 2);
- }
- }
- System.out.println("Congratulations, all tasks have been completed! Rubber ducks rewarded:");
- for(Map.Entry<String, Integer> duckEntry : ducksMap.entrySet()) {
- //duckEntry
- //key: вид на патката
- //value: брой на патките от този вид
- System.out.println(duckEntry.getKey() + ": " + duckEntry.getValue());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement