Advertisement
Lyubohd

01. Summer Cocktails

Feb 14th, 2020
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.38 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.Collectors;
  3.  
  4. public class Problem01 {
  5.     public static void main(String[] args) {
  6.         Scanner scan = new Scanner(System.in);
  7.  
  8.         List<Integer> ingredients = Arrays
  9.                 .stream(scan.nextLine().split("\\s+"))
  10.                 .map(e -> Integer.parseInt(e))
  11.                 .collect(Collectors.toList());
  12.         List<Integer> freshnessLevel = Arrays
  13.                 .stream(scan.nextLine().split("\\s+"))
  14.                 .map(e -> Integer.parseInt(e))
  15.                 .collect(Collectors.toList());
  16.  
  17.         Map<String, Integer> cocktails = new TreeMap<>();
  18.         while (!ingredients.isEmpty() && !freshnessLevel.isEmpty()) {
  19.             int bucket = ingredients.get(0);
  20.             if (bucket == 0) {
  21.                 ingredients.remove(0);
  22.                 continue;
  23.             }
  24.             int freshLevel = freshnessLevel.get(freshnessLevel.size() - 1);
  25.             int totalFreshnessLevel = bucket * freshLevel;
  26.             switch (totalFreshnessLevel) {
  27.                 case 150:
  28.                     addCocktail(cocktails, "Mimosa");
  29.                     removeParts(freshnessLevel, ingredients);
  30.                     break;
  31.                 case 250:
  32.                     addCocktail(cocktails, "Daiquiri");
  33.                     removeParts(freshnessLevel, ingredients);
  34.                     break;
  35.                 case 300:
  36.                     addCocktail(cocktails, "Sunshine");
  37.                     removeParts(freshnessLevel, ingredients);
  38.                     break;
  39.                 case 400:
  40.                     addCocktail(cocktails, "Mojito");
  41.                     removeParts(freshnessLevel, ingredients);
  42.                     break;
  43.                 default:
  44.                     freshnessLevel.remove(freshnessLevel.size() - 1);
  45.                     int ingredient = ingredients.remove(0);
  46.                     ingredients.add(ingredient + 5);
  47.                     break;
  48.             }
  49.         }
  50.  
  51.         if (cocktails.size() == 4) {
  52.             System.out.println("It's party time! The cocktails are ready!");
  53.         } else {
  54.             System.out.println("What a pity! You didn't manage to prepare all cocktails.");
  55.         }
  56.  
  57.         if (!ingredients.isEmpty()) {
  58.             int sum = ingredients.stream().mapToInt(e -> Integer.valueOf(e)).sum();
  59. //            int sum2 = 0;
  60. //            for (Integer ingredient : ingredients) {
  61. //                sum2 += ingredient;
  62. //            }
  63.             System.out.println(String.format("Ingredients left: %d", sum));
  64.         }
  65.  
  66.         cocktails
  67.                 .forEach((k, v) -> System.out.println(String.format("# %s --> %d", k, v)));
  68. //        cocktails
  69. //                .entrySet()
  70. //                .stream()
  71. //                .forEach(e ->System.out.println(String.format("# %s --> %d", e.getKey(), e.getValue())));
  72.     }
  73.  
  74.     private static void removeParts(List<Integer> freshnessLevel, List<Integer> ingredients) {
  75.         ingredients.remove(0);
  76.         freshnessLevel.remove(freshnessLevel.size() - 1);
  77.     }
  78.  
  79.     private static void addCocktail(Map<String, Integer> cocktails, String currentCocktail) {
  80.         if (cocktails.containsKey(currentCocktail)) {
  81.             int count = cocktails.get(currentCocktail);
  82.             cocktails.put(currentCocktail, count + 1);
  83.         } else {
  84.             cocktails.put(currentCocktail, 1);
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement