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.*;
- import java.util.stream.Collectors;
- public class Task_1 {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- ArrayDeque<Integer> firstBomb = offerInQueue(reader);
- ArrayDeque<Integer> secondBomb = new ArrayDeque<>();
- pushInTheStack(reader, secondBomb);
- Map<String, Integer> values = new HashMap<>();
- values.put("Datura Bombs", 0);
- values.put("Cherry Bombs", 0);
- values.put("Smoke Decoy Bombs", 0);
- int datura = 0;
- int cherry = 0;
- int smokey = 0;
- boolean hasAll = false;
- while (!firstBomb.isEmpty() && !secondBomb.isEmpty()) {
- if (datura >= 3 && cherry >= 3 && smokey >= 3) {
- hasAll = true;
- break;
- }
- int sum = firstBomb.peek() + secondBomb.peek();
- int prev;
- switch (sum) {
- case 40:
- datura++;
- prev = values.get("Datura Bombs");
- prev += 1;
- values.put("Datura Bombs", prev);
- firstBomb.poll();
- secondBomb.pop();
- break;
- case 60:
- cherry++;
- prev = values.get("Cherry Bombs");
- prev += 1;
- values.put("Cherry Bombs", prev);
- firstBomb.poll();
- secondBomb.pop();
- break;
- case 120:
- smokey++;
- prev = values.get("Smoke Decoy Bombs");
- prev += 1;
- values.put("Smoke Decoy Bombs", prev);
- firstBomb.poll();
- secondBomb.pop();
- break;
- default:
- int bombLast = secondBomb.pop();
- bombLast -= 5;
- secondBomb.push(bombLast);
- break;
- }
- }
- if(hasAll){
- System.out.println("Bene! You have successfully filled the bomb pouch!");
- }else{
- System.out.println("You don't have enough materials to fill the bomb pouch.");
- }
- StringBuilder result = new StringBuilder();
- if (firstBomb.size() > 0) {
- result.append("Bomb Effects: ");
- for (Integer material : firstBomb) {
- result.append(material).append(", ");
- }
- System.out.println(result.toString().substring(0, result.lastIndexOf(",")));
- }else{
- System.out.println("Bomb Effects: empty");
- }
- result.setLength(0);
- if (secondBomb.size() > 0) {
- result.append("Bomb Casings: ");
- for (Integer integer : secondBomb) {
- result.append(integer).append(", ");
- }
- System.out.println(result.toString().substring(0, result.lastIndexOf(",")));
- }else{
- System.out.println("Bomb Casings: empty");
- }
- values.entrySet().stream()
- .filter(c -> c.getValue() >=0)
- .sorted(Map.Entry.comparingByKey())
- .forEach(e -> System.out.println(e.getKey() + ": " + e.getValue()));
- }
- private static ArrayDeque<Integer> offerInQueue(BufferedReader reader) throws IOException {
- return Arrays.stream(reader.readLine().split(", "))
- .mapToInt(Integer::parseInt)
- .boxed()
- .collect(Collectors.toCollection(ArrayDeque::new));
- }
- private static void pushInTheStack(BufferedReader reader, Deque<Integer> stack) throws IOException {
- Arrays.stream(reader.readLine().split(", "))
- .mapToInt(Integer::parseInt)
- .forEach(stack::push);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement