Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayDeque;
- import java.util.Arrays;
- import java.util.Scanner;
- public class SantasPresentFactory {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int[] boxes = Arrays.stream(scanner.nextLine().split("\\s+"))
- .mapToInt(Integer::parseInt).toArray();
- int[] magic = Arrays.stream(scanner.nextLine().split("\\s"))
- .mapToInt(Integer::parseInt).toArray();
- ArrayDeque<Integer> boxesValues = new ArrayDeque<>();
- ArrayDeque<Integer> magicValues = new ArrayDeque<>();
- for (int box : boxes) {
- boxesValues.push(box);
- }
- for (int value : magic) {
- magicValues.offer(value);
- }
- int dollCounter = 0;
- int woodenTrainCounter = 0;
- int teddyBearCounter = 0;
- int bicycleCounter = 0;
- while (!boxesValues.isEmpty() && !magicValues.isEmpty()) {
- int sum = boxesValues.peek() * magicValues.peek();
- if (sum == 150) {
- dollCounter++;
- remove(boxesValues, magicValues);
- } else if (sum == 250) {
- woodenTrainCounter++;
- remove(boxesValues, magicValues);
- } else if (sum == 300) {
- teddyBearCounter++;
- remove(boxesValues, magicValues);
- } else if (sum == 400) {
- bicycleCounter++;
- remove(boxesValues, magicValues);
- } else if (sum < 0) {
- sum = boxesValues.peek() + magicValues.peek();
- remove(boxesValues, magicValues);
- boxesValues.push(sum);
- } else if (magicValues.peek() == 0 || boxesValues.peek() == 0 ||
- magicValues.peek() == 0 && boxesValues.peek() == 0) {
- if(magicValues.peek() == 0){
- magicValues.remove();
- }else if(boxesValues.peek() == 0){
- boxesValues.pop();
- }else{
- remove(boxesValues, magicValues);
- }
- } else {
- magicValues.poll();
- int newMaterial= boxesValues.peek() + 15;
- boxesValues.pop();
- boxesValues.push(newMaterial);
- }
- }
- if(dollCounter > 0 && woodenTrainCounter > 0 || bicycleCounter > 0 && teddyBearCounter > 0){
- System.out.println("The presents are crafted! Merry Christmas!");
- System.out.print("Materials left: ");
- for (int i = 0; i < boxesValues.size(); i++) {
- if(i == boxesValues.size() - 1){
- System.out.print(boxesValues.pop());
- }else {
- System.out.print(String.format("%d, ", boxesValues.pop()));
- i--;
- }
- }
- System.out.println();
- if(dollCounter > 0 && woodenTrainCounter > 0){
- System.out.println(String.format("Doll: %d%nWooden train: %d", dollCounter, woodenTrainCounter));
- }else{
- System.out.println(String.format("Bicycle: %d%nTeddy bear: %d", bicycleCounter, teddyBearCounter));}
- }else {
- System.out.println("No presents this Christmas!");
- System.out.print("Materials left: ");
- for (int i = 0; i < boxesValues.size(); i++) {
- if(i == boxesValues.size() - 1){
- System.out.print(boxesValues.pop());
- }else {
- System.out.print(String.format("%d, ", boxesValues.pop()));
- i--;
- }
- }
- System.out.println();
- print(dollCounter, woodenTrainCounter, teddyBearCounter, bicycleCounter);
- }
- }
- private static void print(int dollCounter, int woodenTrainCounter, int teddyBearCounter, int bicycleCounter) {
- if(dollCounter > 0){
- System.out.println(String.format("Doll: %d", dollCounter));
- }
- if(woodenTrainCounter > 0){
- System.out.println(String.format("Wooden train: %d", woodenTrainCounter));
- }
- if(teddyBearCounter > 0){
- System.out.println(String.format("Teddy bear: %d", teddyBearCounter));
- }
- if(bicycleCounter > 0){
- System.out.println(String.format("Bicycle: %d", bicycleCounter));
- }
- }
- private static void remove(ArrayDeque<Integer> boxes, ArrayDeque<Integer> magics) {
- boxes.pop();
- magics.poll();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement