Advertisement
at90

Untitled

May 27th, 2018
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.84 KB | None | 0 0
  1. import java.util.LinkedHashMap;
  2. import java.util.Map;
  3. import java.util.Scanner;
  4. import java.util.TreeMap;
  5.  
  6. public class DragonArmy {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         int n = Integer.valueOf(scanner.nextLine());
  11.  
  12.         Map<String, TreeMap<String, Dragon>> dragons = new LinkedHashMap<>();
  13.  
  14.         for (int i = 0; i < n; i++) {
  15.  
  16.             String[] input = scanner.nextLine().split(" ");
  17.             String type = input[0];
  18.             String name = input[1];
  19.             String damage = input[2];
  20.             String health = input[3];
  21.             String armor = input[4];
  22.  
  23.  
  24.             if (!dragons.containsKey(type)) {
  25.                 Dragon dragon = new Dragon(name, damage, health, armor);
  26.                 TreeMap<String, Dragon> dragonList = new TreeMap<>();
  27.                 dragonList.put(dragon.name, dragon);
  28.                 dragons.put(type, dragonList);
  29.             } else {
  30.                 Dragon dragon = new Dragon(name, damage, health, armor);
  31.                 TreeMap<String, Dragon> dragonList = dragons.get(type);
  32.                 dragonList.put(dragon.name, dragon);
  33.             }
  34.         }
  35.  
  36.         for (Map.Entry<String, TreeMap<String, Dragon>> type : dragons.entrySet()) {
  37.             double damageSum = 0d;
  38.             double healtSum = 0d;
  39.             double armorSum = 0d;
  40.             for (Map.Entry<String, Dragon> dragon : type.getValue().entrySet()) {
  41.                 damageSum += dragon.getValue().damage;
  42.                 healtSum += dragon.getValue().health;
  43.                 armorSum += dragon.getValue().armor;
  44.             }
  45.             double damageAvg = damageSum / type.getValue().size();
  46.             double healthAvg = healtSum / type.getValue().size();
  47.             double armorAvg = armorSum / type.getValue().size();
  48.             System.out.printf("%s::(%.2f/%.2f/%.2f)%n", type.getKey(), damageAvg, healthAvg, armorAvg);
  49.  
  50.             for (Map.Entry<String, Dragon> dragon : type.getValue().entrySet()) {
  51.                 System.out.printf("-%s -> damage: %d, health: %d, armor: %d%n", dragon.getValue().name, dragon.getValue().damage, dragon.getValue().health, dragon.getValue().armor);
  52.             }
  53.         }
  54.     }
  55.  
  56.     private static class Dragon {
  57.         public String name;
  58.         public int health = 250;
  59.         public int damage = 45;
  60.         public int armor = 10;
  61.  
  62.         public Dragon() {
  63.         }
  64.  
  65.         public Dragon(String name, String damage, String health, String armor) {
  66.             this.name = name;
  67.             if (!"null".equals(damage))
  68.                 this.damage = Integer.valueOf(damage);
  69.             if (!"null".equals(health))
  70.                 this.health = Integer.valueOf(health);
  71.             if (!"null".equals(armor))
  72.                 this.armor = Integer.valueOf(armor);
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement