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);
- Map<String, List<String>> bandAndMembers = new LinkedHashMap<>();
- Map<String, Integer> bandAndTime = new LinkedHashMap<>();
- String line = scanner.nextLine();
- while (!line.equals("start of concert")) {
- String[] info = line.split("; ");
- String command = info[0];
- String bandName = info[1];
- if (command.equals("Add")) {
- String[] members = info[2].split(", ");
- if (!bandAndMembers.containsKey(bandName)) {
- bandAndMembers.put(bandName, new ArrayList<>());
- for (String member : members) {
- bandAndMembers.get(bandName).add(member);
- }
- } else {
- for (String member : members) {
- if (!bandAndMembers.get(bandName).contains(member)) {
- bandAndMembers.get(bandName).add(member);
- }
- }
- }
- }
- if (command.equals("Play")) {
- int time = Integer.parseInt(info[2]);
- bandAndTime.putIfAbsent(bandName, 0);
- bandAndTime.put(bandName, bandAndTime.get(bandName) + time);
- }
- line = scanner.nextLine();
- }
- int totalTime = bandAndTime.values().stream().mapToInt(t -> t).sum();
- System.out.println("Total time: " + totalTime);
- bandAndTime.entrySet().stream()
- .sorted((b1, b2) -> {
- int compare = b2.getValue().compareTo(b1.getValue());
- if(compare == 0){
- b1.getKey().compareTo(b2.getKey());
- }
- return compare;
- })
- .forEach(b -> System.out.printf("%s -> %d%n", b.getKey(), b.getValue()));
- String band = scanner.nextLine();
- for (Map.Entry<String, List<String>> entry : bandAndMembers.entrySet()) {
- if (entry.getKey().equals(band)) {
- System.out.println(band);
- entry.getValue().forEach(mem -> System.out.println("=> " + mem));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement