Advertisement
chaushev

Untitled

Feb 20th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1.  
  2. import java.util.*;
  3.  
  4. public class TWOLittleAlchemy {
  5. public static void main(String[] args) {
  6. Scanner scanner = new Scanner(System.in);
  7. // add elements to queue
  8. ArrayDeque<Integer> stone = new ArrayDeque<>();
  9. Arrays.stream(scanner.nextLine().split("\\s+")).mapToInt(Integer::parseInt).forEach(stone::add);
  10. ArrayDeque<Integer> gold = new ArrayDeque<>();
  11.  
  12. String line = scanner.nextLine();
  13. while (!"Revision".equals(line)) {
  14. String[] input = line.split("\\s+");
  15. String task = input[0];
  16. int value = Integer.parseInt(input[2]);
  17.  
  18. switch (task) {
  19. case "Apply":
  20. if (isValid(stone, value)) {
  21. for (int i = 0; i < value; i++) {
  22. int tempStoneValue = stone.peek() - 1;
  23. if (tempStoneValue == 0) {
  24. gold.add(tempStoneValue);
  25. stone.remove();
  26. } else {
  27. stone.remove();
  28. stone.addLast(tempStoneValue);
  29. }
  30. }
  31. }
  32. break;
  33. case "Air":
  34. if (!gold.isEmpty()) {
  35. int newGoldValue = gold.peek() + 5;
  36. stone.addLast(newGoldValue);
  37. gold.remove();
  38. }
  39. break;
  40. default:
  41. break;
  42. }
  43. line = scanner.nextLine();
  44. }
  45.  
  46. StringBuilder sb = new StringBuilder();
  47. for (Integer item : stone) {
  48. sb.append(item + " ");
  49. }
  50. System.out.println(sb.toString().trim());
  51. System.out.println(gold.size());
  52. }
  53.  
  54. private static boolean isValid(ArrayDeque<Integer> deque, int value) {
  55. if (value >= 0 && value <= deque.size()) {
  56. return true;
  57. }
  58. return false;
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement