Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class LegendaryFarming {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- TreeMap<String, Integer> junkItems = new TreeMap<>();
- LinkedHashMap<String, Integer> legends = new LinkedHashMap<>();
- legends.put("fragments", 0);
- legends.put("motes", 0);
- legends.put("shards", 0);
- while (true) {
- String[] items = scanner.nextLine().toLowerCase().split("\\s+");
- for (int i = 0; i < items.length; i += 2) {
- String item = items[i + 1];
- int qty = Integer.parseInt(items[i]);
- if (legends.containsKey(item)) {
- legends.put(item, legends.get(item) + qty);
- if (legends.get(item) >= 250) {
- legends.put(item, legends.get(item) - 250);
- printLegendary(item);
- printLegends(legends);
- printJunks(junkItems);
- return;
- }
- } else {
- junkItems.putIfAbsent(item, 0);
- junkItems.put(item, junkItems.get(item) + qty);
- }
- }
- }
- }
- private static void printJunks(TreeMap<String, Integer> junkItems) {
- junkItems.forEach((key, value) -> System.out.printf("%s: %d%n", key, value));
- }
- private static void printLegendary(String item) {
- String legend = "";
- switch (item) {
- case "fragments":
- legend = "Valanyr";
- break;
- case "motes":
- legend = "Dragonwrath";
- break;
- case "shards":
- legend = "Shadowmourne";
- break;
- }
- System.out.printf("%s obtained!%n", legend);
- }
- private static void printLegends(LinkedHashMap<String, Integer> legends) {
- legends.entrySet().stream().
- sorted((f, s) -> {
- if (s.getValue() - f.getValue() == 0) {
- return f.getKey().compareTo(s.getKey());
- } else {
- return s.getValue() - f.getValue();
- }
- }).
- forEach(legend -> System.out.printf("%s: %d%n", legend.getKey(), legend.getValue()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement