Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.IOException;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.util.*;
- import java.util.stream.Collectors;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- // ArrayList<Integer>liquidsLeft=new ArrayList<>();
- // ArrayList<Integer>physicalMaterialsLeft=new ArrayList<>();
- ArrayList<String> itemsObtained = new ArrayList<>();
- TreeMap<String, Integer> materialAndAmount = new TreeMap<>();
- materialAndAmount.put("Aluminium", 0);
- materialAndAmount.put("Carbon fiber", 0);
- materialAndAmount.put("Glass", 0);
- materialAndAmount.put("Lithium", 0);
- int[] chemicalLiquids = Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- int[] physicalItems = Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- ArrayDeque<Integer> queueLiquids = new ArrayDeque<>();
- for (int liquid : chemicalLiquids) {
- queueLiquids.offer(liquid);
- }
- ArrayDeque<Integer> stackPhysicalItem = new ArrayDeque<>();
- for (int item : physicalItems) {
- stackPhysicalItem.push(item);
- }
- int sum = 0;
- for (int i = 0; i < physicalItems.length; i++) {
- sum = queueLiquids.peek() + stackPhysicalItem.peek();
- //System.out.println(sum);
- if (sum == 25) {
- String item = "Glass";
- queueLiquids.poll();
- stackPhysicalItem.pop();
- itemsObtained.add(item);
- if (!materialAndAmount.containsKey(item)) {
- materialAndAmount.put(item, 1);
- } else {
- materialAndAmount.put(item, materialAndAmount.get(item) + 1);
- }
- } else if (sum == 50) {
- String item = "Aluminium";
- queueLiquids.poll();
- stackPhysicalItem.pop();
- itemsObtained.add(item);
- if (!materialAndAmount.containsKey(item)) {
- materialAndAmount.put(item, 1);
- } else {
- materialAndAmount.put(item, materialAndAmount.get(item) + 1);
- }
- } else if (sum == 75) {
- String item = "Lithium";
- queueLiquids.poll();
- stackPhysicalItem.pop();
- itemsObtained.add(item);
- if (!materialAndAmount.containsKey(item)) {
- materialAndAmount.put(item, 1);
- } else {
- materialAndAmount.put(item, materialAndAmount.get(item) + 1);
- }
- } else if (sum == 100) {
- String item = "Carbon fiber";
- queueLiquids.poll();
- stackPhysicalItem.pop();
- itemsObtained.add(item);
- if (!materialAndAmount.containsKey(item)) {
- materialAndAmount.put(item, 1);
- } else {
- materialAndAmount.put(item, materialAndAmount.get(item) + 1);
- }
- } else {
- //презаписвам стойността в стека
- queueLiquids.poll();
- int currentItem = stackPhysicalItem.pop();
- stackPhysicalItem.push(currentItem + 3);
- }
- }
- if (itemsObtained.contains("Glass") && itemsObtained.contains("Aluminium") && itemsObtained.contains("Lithium") && itemsObtained.contains("Carbon fiber")) {
- System.out.println("Wohoo! You succeeded in building the spaceship!");
- } else {
- System.out.println("Ugh, what a pity! You didn't have enough materials to build the spaceship.");
- }
- if (queueLiquids.size() == 0) {
- System.out.println("Liquids left: none");
- } else {
- System.out.print("Liquids left: ");
- while (queueLiquids.size() > 1) {
- System.out.print(queueLiquids.poll() + ", ");
- }
- System.out.println(queueLiquids.poll());
- }
- if (stackPhysicalItem.size() == 0) {
- System.out.println("Physical items left: none");
- } else {
- System.out.print("Physical items left: ");
- while (stackPhysicalItem.size() > 1) {
- System.out.print(stackPhysicalItem.pop() + ", ");
- }
- System.out.println(stackPhysicalItem.pop());
- }
- for (Map.Entry<String, Integer> entry : materialAndAmount.entrySet()) {
- String itemToPrint = entry.getKey();
- int valueToPrint = entry.getValue();
- System.out.printf("%s: %d%n", entry.getKey(), entry.getValue());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement