Advertisement
desislava_topuzakova

12. Legendary Farming

Jan 18th, 2022
923
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package AssociativeArraysExercise;
  2.  
  3. import java.util.*;
  4.  
  5. public class LegendaryFarming {
  6.     public static void main(String[] args) {
  7.  
  8.         Scanner scan = new Scanner(System.in);
  9.  
  10.         boolean isObtained = false;
  11.  
  12.         Map<String, Integer> keyMaterials = new HashMap<>();
  13.         keyMaterials.put("motes", 0);
  14.         keyMaterials.put("shards", 0);
  15.         keyMaterials.put("fragments", 0);
  16.  
  17.         Map<String, Integer> junk = new TreeMap<>();
  18.  
  19.  
  20.         while (!isObtained) {
  21.             String[] materials = scan.nextLine().split("\\s+");
  22.  
  23.             for (int i = 0; i < materials.length - 1; i += 2) {
  24.                 int quantity = Integer.parseInt(materials[i]);
  25.                 String regant = materials[i + 1].toLowerCase();
  26.  
  27.                 if (regant.equals("motes") || regant.equals("shards")|| regant.equals("fragments")){
  28.                     keyMaterials.put(regant, keyMaterials.get(regant) + quantity);
  29.  
  30.                     if (keyMaterials.get(regant) >= 250){
  31.                         keyMaterials.put(regant, keyMaterials.get(regant) - 250);
  32.                         if (regant.equals("motes")){
  33.                             System.out.println("Dragonwrath obtained!");
  34.                             isObtained = true;
  35.                             break;
  36.  
  37.                         } else if (regant.equals("shards")){
  38.                             System.out.println("Shadowmourne obtained!");
  39.                             isObtained = true;
  40.                             break;
  41.                         } else {
  42.                             System.out.println("Valanyr obtained!");
  43.                             isObtained = true;
  44.                             break;
  45.                         }
  46.                     }
  47.  
  48.                 } else {
  49.                     if (!junk.containsKey(regant)){
  50.                         junk.put(regant, quantity);
  51.  
  52.                     } else {
  53.                         junk.put(regant, junk.get(regant) + quantity);
  54.                     }
  55.                 }
  56.  
  57.  
  58.             }
  59.  
  60.  
  61.         }
  62.             keyMaterials.entrySet().stream().sorted((a , b) -> {
  63.                 if (b.getValue() - a.getValue() == 0){
  64.                     return a.getKey().compareTo(b.getKey());
  65.                 } else {
  66.                     return b.getValue() - a.getValue();
  67.                 }
  68.             }).forEach(entry -> System.out.printf("%s: %d%n", entry.getKey(), entry.getValue()));
  69.  
  70.         for(Map.Entry<String, Integer> token : junk.entrySet()){
  71.             System.out.printf("%s: %d%n", token.getKey(), token.getValue());
  72.         }
  73.  
  74.     }
  75. }
  76.  
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement