Advertisement
Guest User

3.

a guest
Jul 21st, 2019
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement