Advertisement
Tsuki11

Untitled

Apr 2nd, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. import java.util.*;
  2. public class Task_1_Concert {
  3.  
  4. static class Band {
  5.  
  6. public int getTime() {
  7. return time;
  8. }
  9.  
  10. public List<String> getMembers() {
  11. return members;
  12. }
  13.  
  14. public String getName() {
  15. return name;
  16. }
  17.  
  18. public Band(String name) {
  19. this.name = name;
  20. }
  21.  
  22. public void addTime(int time) {
  23. this.time += time;
  24. }
  25.  
  26. public void addMembers(String member) {
  27. if (!this.members.contains(member)) {
  28. this.members.add(member);
  29. }
  30. }
  31.  
  32. private String name;
  33. private int time;
  34. private List<String> members = new ArrayList<>();
  35. }
  36.  
  37. public static void main(String[] args) {
  38. Scanner scan = new Scanner(System.in);
  39.  
  40. Map<String, Band> bandsName = new HashMap<>();
  41. String input = scan.nextLine();
  42. while (!"start of concert".equals(input)) {
  43. String[] tokens = input.split(";+");
  44. String command = tokens[0].trim();
  45. String bandName = tokens[1].trim();
  46.  
  47. Band band = bandsName.get(bandName);
  48. if (band == null) {
  49. band = new Band(bandName);
  50. bandsName.put(bandName, band);
  51. }
  52.  
  53. switch (command) {
  54. case "Add":
  55. String[] members = tokens[2].split(", ");
  56. for (String member : members) {
  57. String currMemb = member.trim();
  58. band.addMembers(currMemb);
  59. }
  60.  
  61. break;
  62. case "Play":
  63. int time = Integer.parseInt(tokens[2].trim());
  64. band.addTime(time);
  65. break;
  66. }
  67.  
  68.  
  69. input = scan.nextLine();
  70. }
  71.  
  72. int totalTime = 0;
  73. for (Band band : bandsName.values()) {
  74. totalTime += band.getTime();
  75. }
  76. System.out.println("Total time: " + totalTime);
  77.  
  78. bandsName.entrySet().stream().sorted((a, b) -> {
  79. int first = a.getValue().getTime();
  80. int second = b.getValue().getTime();
  81. int comp = second - first;
  82. if (comp == 0) {
  83. comp = a.getKey().compareTo(b.getKey());
  84. }
  85. return comp;
  86. }).forEach((p) -> {
  87. System.out.printf("%s -> %s%n", p.getKey(), p.getValue().getTime());
  88. });
  89.  
  90. String bandToPrint = scan.nextLine();
  91. Band band = bandsName.get(bandToPrint);
  92. System.out.println(bandToPrint);
  93. band.getMembers().forEach((a) -> {
  94. System.out.printf("=> %s%n", a);
  95. });
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement