Advertisement
Krassi_Daskalova

Concert

Jul 26th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 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. Map<String, List<String>> bandAndMembers = new LinkedHashMap<>();
  8. Map<String, Integer> bandAndTime = new LinkedHashMap<>();
  9.  
  10. String line = scanner.nextLine();
  11. while (!line.equals("start of concert")) {
  12. String[] info = line.split("; ");
  13. String command = info[0];
  14. String bandName = info[1];
  15.  
  16. if (command.equals("Add")) {
  17. String[] members = info[2].split(", ");
  18. if (!bandAndMembers.containsKey(bandName)) {
  19. bandAndMembers.put(bandName, new ArrayList<>());
  20. for (String member : members) {
  21. bandAndMembers.get(bandName).add(member);
  22. }
  23. } else {
  24. for (String member : members) {
  25. if (!bandAndMembers.get(bandName).contains(member)) {
  26. bandAndMembers.get(bandName).add(member);
  27. }
  28. }
  29. }
  30. }
  31.  
  32. if (command.equals("Play")) {
  33. int time = Integer.parseInt(info[2]);
  34. bandAndTime.putIfAbsent(bandName, 0);
  35. bandAndTime.put(bandName, bandAndTime.get(bandName) + time);
  36. }
  37.  
  38. line = scanner.nextLine();
  39. }
  40. int totalTime = bandAndTime.values().stream().mapToInt(t -> t).sum();
  41. System.out.println("Total time: " + totalTime);
  42.  
  43. bandAndTime.entrySet().stream()
  44. .sorted((b1, b2) -> {
  45. int compare = b2.getValue().compareTo(b1.getValue());
  46. if(compare == 0){
  47. b1.getKey().compareTo(b2.getKey());
  48. }
  49. return compare;
  50. })
  51. .forEach(b -> System.out.printf("%s -> %d%n", b.getKey(), b.getValue()));
  52.  
  53. String band = scanner.nextLine();
  54. for (Map.Entry<String, List<String>> entry : bandAndMembers.entrySet()) {
  55. if (entry.getKey().equals(band)) {
  56. System.out.println(band);
  57. entry.getValue().forEach(mem -> System.out.println("=> " + mem));
  58. }
  59. }
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement