SHARE
TWEET

3.

a guest Jul 21st, 2019 137 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.HashMap;
  2. import java.util.LinkedHashMap;
  3. import java.util.Map;
  4. import java.util.Scanner;
  5.  
  6. public class demoExamSoftUni {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         String command = scanner.nextLine();
  10.         Map<String, Integer> animals = new HashMap<>();
  11.         Map<String, Integer> areas = new LinkedHashMap<>();
  12.         while (!"Last Info".equals(command)) {
  13.             String[] elements = command.split(":");
  14.             String commandType = elements[0];
  15.             if (commandType.equals("Add")) {
  16.                 String name = elements[1];
  17.                 int dailyFoodLimit = Integer.parseInt(elements[2]);
  18.                 String region = elements[3];
  19.                 if (animals.containsKey(name)) {
  20.                     int currentValue = animals.get(name);
  21.  
  22.                     animals.put(name, currentValue + dailyFoodLimit);
  23.                 } else {
  24.                     animals.put(name, dailyFoodLimit);
  25.                     if (areas.containsKey(region)) {
  26.                         areas.put(region, areas.get(region) + 1);
  27.                     } else {
  28.                         areas.put(region, 1);
  29.                     }
  30.                 }
  31.  
  32.             } else if (commandType.equals("Feed")) {
  33.                 String name = elements[1];
  34.                 int food = Integer.parseInt(elements[2]);
  35.                 String region = elements[3];
  36.  
  37.                 if (animals.containsKey(name)) {
  38.                     int currentDailyFood = animals.get(name);
  39.                     if (food >= currentDailyFood) {
  40.                         System.out.printf("%s was successfully fed\n", name);
  41.                         animals.remove(name);
  42.  
  43.                         if(areas.containsKey(region)){
  44.                             int val = areas.get(region) - 1;
  45.                             if(val <=0){
  46.                                 areas.remove(region);
  47.                             } else {
  48.                                 areas.put(region, val);
  49.                             }
  50.                         }
  51.  
  52.                     } else {
  53.                        animals.put(name, currentDailyFood - food);
  54.                     }
  55.                 }
  56.             }
  57.  
  58.             command = scanner.nextLine();
  59.         }
  60.         System.out.println("Animals:");
  61.         animals.entrySet().stream().sorted((a, b) -> {
  62.             int result = b.getValue().compareTo(a.getValue());
  63.             if (result == 0) {
  64.                 result = a.getKey().compareTo(b.getKey());
  65.             }
  66.             return result;
  67.         }).forEach(a -> {
  68.             System.out.printf("%s -> %dg\n", a.getKey(), a.getValue());
  69.         });
  70.         System.out.println("Areas with hungry animals:");
  71.         areas.entrySet().stream().sorted((a, b) -> {
  72.             int result =  b.getValue().compareTo(a.getValue());
  73.             if(result == 0){
  74.                 //result = a.getKey().compareTo(b.getKey());
  75.             }
  76.             return result;
  77.         }).forEach(a -> {
  78.             System.out.printf("%s : %d\n", a.getKey(), a.getValue());
  79.         });
  80.     }
  81. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top