Advertisement
Guest User

Untitled

a guest
Nov 30th, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Concert {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.         String input = scanner.nextLine();
  8.  
  9.         Map<String, List<String>> bandAndMembers = new LinkedHashMap<>();
  10.         Map<String, Integer> bandAndTime = new LinkedHashMap<>();
  11.  
  12.         int totalTime = 0;
  13.         while (!input.equals("start of concert")) {
  14.             String[] data = input.split("; ");
  15.             String command = data[0];
  16.             String band = data[1];
  17.             if ("Add".equals(command)) {
  18.                 String[] members = data[2].split(", ");
  19.                 bandAndMembers.putIfAbsent(band, new ArrayList<>());
  20.                 if (bandAndMembers.containsKey(band)) {
  21.                     Arrays.stream(members)
  22.                             .filter(name -> !bandAndMembers.get(band).contains(name))
  23.                             .forEach(name -> bandAndMembers.get(band).add(name));
  24.                 }
  25.             } else if ("Play".equals(command)) {
  26.                 int time = Integer.parseInt(data[2]);
  27.                 totalTime += time;
  28.                 bandAndTime.putIfAbsent(band, 0);
  29.                 if (bandAndTime.containsKey(band)) {
  30.                     bandAndTime.put(band, bandAndTime.get(band) + time);
  31.                 }
  32.             }
  33.  
  34.             input = scanner.nextLine();
  35.         }
  36.  
  37.         System.out.println(String.format("Total time: %d", totalTime));
  38.  
  39.         bandAndTime
  40.                 .entrySet()
  41.                 .stream()
  42.                 .sorted((e1, e2) -> {
  43.                     int sort = Integer.compare(e2.getValue(), e1.getValue());
  44.                     if (sort == 0) {
  45.                         sort = e1.getKey().compareTo(e2.getKey());
  46.                     }
  47.                     return sort;
  48.                 })
  49.                 .forEach(entry ->
  50.                         System.out.println(String.format("%s -> %d",
  51.                                 entry.getKey(),
  52.                                 entry.getValue())));
  53.  
  54.         String band = scanner.nextLine();
  55.         System.out.println(band);
  56.  
  57.         bandAndMembers
  58.                 .get(band)
  59.                 .forEach(member -> System.out.println(String.format("=> %s", member)));
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement