AsyaDamyanova

Santa's Present Factory - 40/100

Jun 18th, 2020
235
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.ArrayDeque;
  2. import java.util.Arrays;
  3. import java.util.Scanner;
  4.  
  5. public class SantasPresentFactory {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         int[] boxes = Arrays.stream(scanner.nextLine().split("\\s+"))
  10.                 .mapToInt(Integer::parseInt).toArray();
  11.         int[] magic = Arrays.stream(scanner.nextLine().split("\\s"))
  12.                 .mapToInt(Integer::parseInt).toArray();
  13.  
  14.         ArrayDeque<Integer> boxesValues = new ArrayDeque<>();
  15.         ArrayDeque<Integer> magicValues = new ArrayDeque<>();
  16.  
  17.         for (int box : boxes) {
  18.             boxesValues.push(box);
  19.         }
  20.  
  21.         for (int value : magic) {
  22.             magicValues.offer(value);
  23.         }
  24.  
  25.         int dollCounter = 0;
  26.         int woodenTrainCounter = 0;
  27.         int teddyBearCounter = 0;
  28.         int bicycleCounter = 0;
  29.  
  30.         while (!boxesValues.isEmpty() && !magicValues.isEmpty()) {
  31.  
  32.             int sum = boxesValues.peek() * magicValues.peek();
  33.  
  34.             if (sum == 150) {
  35.                 dollCounter++;
  36.                 remove(boxesValues, magicValues);
  37.             } else if (sum == 250) {
  38.                 woodenTrainCounter++;
  39.                 remove(boxesValues, magicValues);
  40.             } else if (sum == 300) {
  41.                 teddyBearCounter++;
  42.                 remove(boxesValues, magicValues);
  43.             } else if (sum == 400) {
  44.                 bicycleCounter++;
  45.                 remove(boxesValues, magicValues);
  46.             } else if (sum < 0) {
  47.                 sum = boxesValues.peek() + magicValues.peek();
  48.                 remove(boxesValues, magicValues);
  49.                 boxesValues.push(sum);
  50.  
  51.             } else if (magicValues.peek() == 0 || boxesValues.peek() == 0 ||
  52.                     magicValues.peek() == 0 && boxesValues.peek() == 0) {
  53.                 if(magicValues.peek() == 0){
  54.                     magicValues.remove();
  55.                 }else if(boxesValues.peek() == 0){
  56.                     boxesValues.pop();
  57.                 }else{
  58.  
  59.                     remove(boxesValues, magicValues);
  60.                 }
  61.  
  62.             } else {
  63.                 magicValues.poll();
  64.                 int newMaterial= boxesValues.peek() + 15;
  65.                 boxesValues.pop();
  66.                 boxesValues.push(newMaterial);
  67.             }
  68.         }
  69.  
  70.         if(dollCounter > 0 && woodenTrainCounter > 0 || bicycleCounter > 0 && teddyBearCounter > 0){
  71.             System.out.println("The presents are crafted! Merry Christmas!");
  72.             System.out.print("Materials left: ");
  73.             for (int i = 0; i < boxesValues.size(); i++) {
  74.                 if(i == boxesValues.size() - 1){
  75.                     System.out.print(boxesValues.pop());
  76.                 }else {
  77.                     System.out.print(String.format("%d, ", boxesValues.pop()));
  78.                     i--;
  79.                 }
  80.             }
  81.             System.out.println();
  82.  
  83.             if(dollCounter > 0 && woodenTrainCounter > 0){
  84.                 System.out.println(String.format("Doll: %d%nWooden train: %d", dollCounter, woodenTrainCounter));
  85.  
  86.             }else{
  87.             System.out.println(String.format("Bicycle: %d%nTeddy bear: %d", bicycleCounter, teddyBearCounter));}
  88.  
  89.  
  90.         }else {
  91.             System.out.println("No presents this Christmas!");
  92.  
  93.             System.out.print("Materials left: ");
  94.             for (int i = 0; i < boxesValues.size(); i++) {
  95.                 if(i == boxesValues.size() - 1){
  96.                     System.out.print(boxesValues.pop());
  97.                 }else {
  98.                     System.out.print(String.format("%d, ", boxesValues.pop()));
  99.                     i--;
  100.                 }
  101.             }
  102.             System.out.println();
  103.  
  104.             print(dollCounter, woodenTrainCounter, teddyBearCounter, bicycleCounter);
  105.  
  106.         }
  107.     }
  108.  
  109.     private static void print(int dollCounter, int woodenTrainCounter, int teddyBearCounter, int bicycleCounter) {
  110.         if(dollCounter > 0){
  111.             System.out.println(String.format("Doll: %d", dollCounter));
  112.         }
  113.         if(woodenTrainCounter > 0){
  114.             System.out.println(String.format("Wooden train: %d", woodenTrainCounter));
  115.         }
  116.         if(teddyBearCounter > 0){
  117.             System.out.println(String.format("Teddy bear: %d", teddyBearCounter));
  118.         }
  119.         if(bicycleCounter > 0){
  120.             System.out.println(String.format("Bicycle: %d", bicycleCounter));
  121.         }
  122.     }
  123.  
  124.  
  125.     private static void remove(ArrayDeque<Integer> boxes, ArrayDeque<Integer> magics) {
  126.         boxes.pop();
  127.         magics.poll();
  128.     }
  129.  
  130. }
RAW Paste Data