Advertisement
ilianrusev

Final Exam - 16 December 2018 - 01. Concert

Apr 13th, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4.  
  5. public class Main {
  6.     public static void main(String[] args) {
  7.  
  8.         Scanner scanner= new Scanner(System.in);
  9.         String input="";
  10.         Map<String,List<String>> bandAndMembers = new LinkedHashMap<>();
  11.         Map<String,Integer> bandAndTime = new LinkedHashMap<>();
  12.         int totalTime = 0;
  13.         int time = 0;
  14.  
  15.         System.out.println();
  16.         while (!"start of concert".equals(input = scanner.nextLine())){
  17.             String[] splitted = input.split(";");
  18.             String operation = splitted[0].trim();
  19.             String bandName = splitted[1].trim();
  20.             if (operation.trim().equals("Add")) {
  21.                 String[] names = splitted[2].trim().split(",\\s");
  22.                 bandAndMembers.putIfAbsent(bandName.trim(), new ArrayList<>());
  23.  
  24.                 for (int i = 0; i < names.length; i++) {
  25.                     if (!bandAndMembers.get(bandName.trim()).contains(names[i])){
  26.                         bandAndMembers.get(bandName.trim()).add(names[i]);
  27.                     }
  28.                 }
  29.             }else if (operation.trim().equals("Play")){
  30.                 time = Integer.parseInt(splitted[2].trim());
  31.                 totalTime += time;
  32.  
  33.                 if (bandAndTime.containsKey(bandName.trim())){
  34.                     bandAndTime.put(bandName.trim(),bandAndTime.get(bandName.trim()) + time);
  35.                 }else {
  36.                     bandAndTime.put(bandName.trim(),time);
  37.                 }
  38.  
  39.             }
  40.  
  41.         }
  42.  
  43.         System.out.printf("Total time: %d\n",totalTime);
  44.  
  45.         bandAndTime.entrySet().stream().sorted((a,b) -> {
  46.             int sort = Integer.compare(b.getValue(), a.getValue());
  47.             if (sort == 0){
  48.                 sort = a.getKey().compareTo(b.getKey());
  49.             }
  50.             return sort;}).forEach(e -> {
  51.             System.out.printf("%s -> %d\n",e.getKey(),e.getValue());
  52.         });
  53.  
  54.         String finalInput = scanner.nextLine();
  55.         System.out.println(finalInput);
  56.         if (bandAndMembers.containsKey(finalInput)){
  57.             for (int i = 0; i < bandAndMembers.get(finalInput).size(); i++) {
  58.                 System.out.printf("=> %s\n",bandAndMembers.get(finalInput).get(i));
  59.             }
  60.         }
  61.  
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement