Advertisement
Guest User

MessagesManager

a guest
Apr 10th, 2020
583
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main {
  4.  
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.         int capacity = Integer.parseInt(scanner.nextLine());
  8.         Map<String, List<Integer>> users = new TreeMap<>();
  9.  
  10.         String commands = scanner.nextLine();
  11.         while (!"Statistics".equals(commands)) {
  12.             String[] elements = commands.split("=");
  13.             String commandName = elements[0];
  14.  
  15.             switch (commandName) {
  16.                 case "Add":
  17.                     String username = elements[1];
  18.                     int sent = Integer.parseInt(elements[2]);
  19.                     int received = Integer.parseInt(elements[3]);
  20.                     if (!users.containsKey(username)) {
  21.                         users.put(username, new ArrayList<>());
  22.                         users.get(username).add(0, sent);
  23.                         users.get(username).add(1, received);
  24.                     }
  25.                     break;
  26.                 case "Message":
  27.                     String sender = elements[1];
  28.                     String receiver = elements[2];
  29.                     if (users.containsKey(sender) && users.containsKey(receiver)) {
  30.                         int senderSent = users.get(sender).get(0);
  31.                         int senderReceived = users.get(sender).get(1);
  32.                         int receiverSent = users.get(receiver).get(0);
  33.                         int receiverReceived = users.get(receiver).get(1);
  34.                        
  35.                         senderSent += 1;
  36.                         receiverReceived += 1;
  37.                         if (senderSent + senderReceived < capacity) {
  38.                             users.get(sender).set(0, senderSent);
  39.                         } else {
  40.                             users.remove(sender);
  41.                             System.out.println(String.format("%s reached the capacity!", sender));
  42.                         }
  43.                         if (receiverSent + receiverReceived < capacity) {
  44.                             users.get(receiver).set(1, receiverReceived);
  45.                         } else {
  46.                             users.remove(receiver);
  47.                             System.out.println(String.format("%s reached the capacity!", receiver));
  48.                         }
  49.                     }
  50.                     break;
  51.                 case "Empty":
  52.                     String username1 = elements[1];
  53.                     if (!"All".equals(username1)) {
  54.                         users.remove(username1);
  55.                     } else {
  56.                         users.clear();
  57.                     }
  58.                     break;
  59.             }
  60.             commands = scanner.nextLine();
  61.         }
  62.  
  63.         System.out.println(String.format("Users count: %d", users.size()));
  64.         users
  65.                 .entrySet()
  66.                 .stream()
  67.                 .sorted((h1, h2) -> h2.getValue().get(1) - h1.getValue().get(1))
  68.                 .forEach(u ->
  69.                     System.out.printf("%s - %d%n", u.getKey (), u.getValue().get(0) + u.getValue().get(1)));
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement