SHARE
TWEET

Messages Manager

a guest Apr 9th, 2020 159 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.         TreeMap<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.                     int senderSent = users.get(sender).get(0);
  30.                     int senderReceived = users.get(sender).get(1);
  31.                     int receiverSent = users.get(receiver).get(0);
  32.                     int receiverReceived = users.get(receiver).get(1);
  33.                     if (users.containsKey(sender) && users.containsKey(receiver)) {
  34.                         senderSent += 1;
  35.                         receiverReceived += 1;
  36.                         if (senderSent + senderReceived < capacity) {
  37.                             users.get(sender).set(0, senderSent);
  38.                         } else {
  39.                             users.remove(sender);
  40.                             System.out.println(String.format("%s reached the capacity!", sender));
  41.                         }
  42.                         if (receiverSent + receiverReceived < capacity) {
  43.                             users.get(receiver).set(1, receiverReceived);
  44.                         } else {
  45.                             users.remove(receiver);
  46.                             System.out.println(String.format("%s reached the capacity!", receiver));
  47.                         }
  48.                         break;
  49.  
  50.                     }
  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((e) -> System.out.println(e.getKey() + " - "
  69.                         + e.getValue().get(0) + e.getValue().get(1).toString().replaceAll("[\\[\\]]", "")));
  70.  
  71.  
  72.     }
  73. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top