Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Concert {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String input = scanner.nextLine();
- Map<String, List<String>> bandAndMembers = new LinkedHashMap<>();
- Map<String, Integer> bandAndTime = new LinkedHashMap<>();
- int totalTime = 0;
- while (!input.equals("start of concert")) {
- String[] data = input.split("; ");
- String command = data[0];
- String band = data[1];
- if ("Add".equals(command)) {
- String[] members = data[2].split(", ");
- bandAndMembers.putIfAbsent(band, new ArrayList<>());
- if (bandAndMembers.containsKey(band)) {
- Arrays.stream(members)
- .filter(name -> !bandAndMembers.get(band).contains(name))
- .forEach(name -> bandAndMembers.get(band).add(name));
- }
- } else if ("Play".equals(command)) {
- int time = Integer.parseInt(data[2]);
- totalTime += time;
- bandAndTime.putIfAbsent(band, 0);
- if (bandAndTime.containsKey(band)) {
- bandAndTime.put(band, bandAndTime.get(band) + time);
- }
- }
- input = scanner.nextLine();
- }
- System.out.println(String.format("Total time: %d", totalTime));
- bandAndTime
- .entrySet()
- .stream()
- .sorted((e1, e2) -> {
- int sort = Integer.compare(e2.getValue(), e1.getValue());
- if (sort == 0) {
- sort = e1.getKey().compareTo(e2.getKey());
- }
- return sort;
- })
- .forEach(entry ->
- System.out.println(String.format("%s -> %d",
- entry.getKey(),
- entry.getValue())));
- String band = scanner.nextLine();
- System.out.println(band);
- bandAndMembers
- .get(band)
- .forEach(member -> System.out.println(String.format("=> %s", member)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement