Advertisement
IrinaIgnatova

Exam-SantasPresentFactory

Dec 17th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.06 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4.  
  5. public class Main {
  6.  
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         ArrayList<String> itemsObtained = new ArrayList<>();
  11.         TreeMap<String, Integer> materialAndAmount = new TreeMap<>();
  12.         materialAndAmount.put("Doll", 0);
  13.         materialAndAmount.put("Wooden train", 0);
  14.         materialAndAmount.put("Teddy bear", 0);
  15.         materialAndAmount.put("Bicycle ", 0);
  16.  
  17.         ArrayDeque<Integer> boxes = new ArrayDeque<>();
  18.         ArrayDeque<Integer> magic = new ArrayDeque<>();
  19.  
  20.         Arrays.stream(scanner.nextLine().split(" "))
  21.                 .mapToInt(Integer::parseInt)
  22.                 .forEach(boxes::push);//така четем и добавяме в стека
  23.  
  24.  
  25.         Arrays.stream(scanner.nextLine().split(" "))
  26.                 .mapToInt(Integer::parseInt)
  27.                 .forEach(magic::offer);//така четем и добавяме в опашка
  28.  
  29.         int sum = 0;
  30.  
  31.  
  32.         while (boxes.size() > 0 && magic.size() > 0) {
  33.             int box = boxes.peek();//създаваме си променливи за да можем да сравняваме елементите от двете колекции
  34.             int magicValue = magic.peek();
  35.  
  36.             sum = box * magicValue;
  37.  
  38.             if (sum == 150) {
  39.                 String item = "Doll";
  40.                 magic.poll();
  41.                 boxes.pop();
  42.                 itemsObtained.add(item);
  43.                 if (!materialAndAmount.containsKey(item)) {
  44.                     materialAndAmount.put(item, 1);
  45.                 } else {
  46.                     materialAndAmount.put(item, materialAndAmount.get(item) + 1);
  47.                 }
  48.             } else if (sum == 250) {
  49.                 String item = "Wooden train";
  50.                 magic.poll();
  51.                 boxes.pop();
  52.                 itemsObtained.add(item);
  53.                 if (!materialAndAmount.containsKey(item)) {
  54.                     materialAndAmount.put(item, 1);
  55.                 } else {
  56.                     materialAndAmount.put(item, materialAndAmount.get(item) + 1);
  57.                 }
  58.             } else if (sum == 300) {
  59.                 String item = "Teddy bear";
  60.                 magic.poll();
  61.                 boxes.pop();
  62.                 itemsObtained.add(item);
  63.                 if (!materialAndAmount.containsKey(item)) {
  64.                     materialAndAmount.put(item, 1);
  65.                 } else {
  66.                     materialAndAmount.put(item, materialAndAmount.get(item) + 1);
  67.                 }
  68.             } else if (sum == 400) {
  69.                 String item = "Bicycle";
  70.                 magic.poll();
  71.                 boxes.pop();
  72.                 itemsObtained.add(item);
  73.                 if (!materialAndAmount.containsKey(item)) {
  74.                     materialAndAmount.put(item, 1);
  75.                 } else {
  76.                     materialAndAmount.put(item, materialAndAmount.get(item) + 1);
  77.                 }
  78.             } else if (sum < 0) {//ако е отрицателно число
  79.                 int sumIfNegative = box + magicValue;
  80.                 magic.poll();
  81.                 boxes.pop();
  82.                 boxes.push(sumIfNegative);//добавяме в materials
  83.             } else if (sum > 0) {//else if (sum != 150 && sum > 0)  да допиша за 250 300 400
  84. //                magic.poll();
  85. //                boxes.push(box + 15);
  86.                 magic.poll();
  87.                 int currentItem = boxes.pop();
  88.                 boxes.push(currentItem + 15);
  89.  
  90.             } else if (box == 0) {//дали да сложа тези две проверки най-отгоре?
  91.                 boxes.pop();
  92.             } else if (magicValue == 0) {
  93.                 magic.poll();
  94.             }
  95.         }
  96.  
  97.         if (itemsObtained.contains("Doll") && itemsObtained.contains("Wooden train")) {
  98.             System.out.println("The presents are crafted! Merry Christmas!");
  99.         } else if (itemsObtained.contains("Teddy bear") && itemsObtained.contains("Bicycle")) {
  100.             System.out.println("The presents are crafted! Merry Christmas!");
  101.         } else {
  102.             System.out.println("No presents this Christmas!");
  103.         }
  104.  
  105.         if (magic.size() > 0) {
  106.             System.out.print("Magic left: ");
  107.  
  108.             while (magic.size() > 1) {
  109.                 System.out.print(magic.poll() + ", ");
  110.             }
  111.             System.out.println(magic.poll());
  112.         }
  113.  
  114.         if (boxes.size() > 0) {
  115.             System.out.print("Materials left: ");
  116.  
  117.             while (boxes.size() > 1) {
  118.                 System.out.print(boxes.pop() + ", ");
  119.             }
  120.             System.out.println(boxes.pop());
  121.  
  122.  
  123.         }
  124.  
  125.         for (Map.Entry<String, Integer> entry : materialAndAmount.entrySet()) {
  126.             String itemToPrint = entry.getKey();
  127.             int valueToPrint = entry.getValue();
  128.             if (entry.getValue() > 0) {
  129.                 System.out.printf("%s: %d%n", entry.getKey(), entry.getValue());
  130.             }
  131.  
  132.         }
  133.  
  134.  
  135.     }
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement