Advertisement
StefanShivarov

Concert

Nov 30th, 2019
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.86 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class concert {
  4.  
  5.  
  6.     public static void main(String[] args) {
  7.  
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         Map<String, Integer> playTimeMap = new LinkedHashMap<>();
  11.         Map<String, List<String>> bandMembersMap = new LinkedHashMap<>();
  12.         String input = scanner.nextLine();
  13.  
  14.         while(!input.equals("start of concert")){
  15.  
  16.             String[]inputArray = input.split(";\\s+");
  17.  
  18.             switch (inputArray[0]){
  19.  
  20.                 case"Add":
  21.  
  22.                     String band = inputArray[1];
  23.                     if(bandMembersMap.containsKey(band)){
  24.  
  25.                         List<String> moreMembers = bandMembersMap.get(band);
  26.                         for(int i = 2; i < inputArray.length; i++){
  27.  
  28.                             if(!bandMembersMap.get(band).contains(inputArray[i])) {
  29.  
  30.                                  moreMembers.add(inputArray[i]);
  31.                             }
  32.                         }
  33.  
  34.                         bandMembersMap.replace(band, moreMembers);
  35.  
  36.                     }else{
  37.  
  38.                         List<String>members = new ArrayList<>();
  39.                         for(int i = 2; i < inputArray.length; i++){
  40.  
  41.                             members.add(inputArray[i]);
  42.                         }
  43.                         bandMembersMap.put(band, members);
  44.  
  45.                     }
  46.                     break;
  47.  
  48.  
  49.                 case"Play":
  50.  
  51.                     String playBand = inputArray[1];
  52.                     int playTime = Integer.parseInt(inputArray[2]);
  53.  
  54.                     if(playTimeMap.containsKey(playBand)){
  55.  
  56.                         playTimeMap.replace(playBand, playTimeMap.get(playBand)+playTime);
  57.                     }else{
  58.  
  59.                         playTimeMap.put(playBand, playTime);
  60.                     }
  61.  
  62.                     break;
  63.  
  64.             }
  65.             input = scanner.nextLine();
  66.         }
  67.  
  68.         int totalPlayTime = 0;
  69.  
  70.         for(Map.Entry<String, Integer> entry : playTimeMap.entrySet()){
  71.  
  72.             totalPlayTime += entry.getValue();
  73.         }
  74.  
  75.         System.out.println("Total time: "+totalPlayTime);
  76.  
  77.         playTimeMap.entrySet().stream().sorted((a,b)->{
  78.  
  79.             int res = b.getValue().compareTo(a.getValue());
  80.             if(res==0){
  81.  
  82.                 res = a.getKey().compareTo(b.getKey());
  83.             }
  84.             return res;
  85.  
  86.         }).forEach(entry -> {
  87.  
  88.             String currentBand = entry.getKey();
  89.             int currentBandPlayTime = entry.getValue();
  90.  
  91.             System.out.println(String.format("%s -> %d", currentBand, currentBandPlayTime));
  92.         });
  93.  
  94.         String bandName = scanner.nextLine();
  95.  
  96.         System.out.println(bandName);
  97.        
  98.         for(String output : bandMembersMap.get(bandName)){
  99.  
  100.             System.out.println("=> "+output);
  101.         }
  102.  
  103.        
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement