Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class TWOLittleAlchemy {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- // add elements to queue
- ArrayDeque<Integer> stone = new ArrayDeque<>();
- Arrays.stream(scanner.nextLine().split("\\s+")).mapToInt(Integer::parseInt).forEach(stone::add);
- ArrayDeque<Integer> gold = new ArrayDeque<>();
- String line = scanner.nextLine();
- while (!"Revision".equals(line)) {
- String[] input = line.split("\\s+");
- String task = input[0];
- int value = Integer.parseInt(input[2]);
- switch (task) {
- case "Apply":
- if (isValid(stone, value)) {
- for (int i = 0; i < value; i++) {
- int tempStoneValue = stone.peek() - 1;
- if (tempStoneValue == 0) {
- gold.add(tempStoneValue);
- stone.remove();
- } else {
- stone.remove();
- stone.addLast(tempStoneValue);
- }
- }
- }
- break;
- case "Air":
- if (!gold.isEmpty()) {
- int newGoldValue = gold.peek() + 5;
- stone.addLast(newGoldValue);
- gold.remove();
- }
- break;
- default:
- break;
- }
- line = scanner.nextLine();
- }
- StringBuilder sb = new StringBuilder();
- for (Integer item : stone) {
- sb.append(item + " ");
- }
- System.out.println(sb.toString().trim());
- System.out.println(gold.size());
- }
- private static boolean isValid(ArrayDeque<Integer> deque, int value) {
- if (value >= 0 && value <= deque.size()) {
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement