Advertisement
damesova

neshto [Mimi]

Apr 17th, 2019
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.43 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.*;
  5.  
  6. public class _09_ForceBook {
  7.     public static void main(String[] args) throws IOException {
  8.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  9.  
  10.         Map<String, List<String>> sidesWithUsers = new TreeMap<>();
  11.  
  12.         String input = "";
  13.         while (!"Lumpawaroo".equals(input = reader.readLine())) {
  14.  
  15.             if (input.contains(" | ")) {
  16.                 String[] data = input.split(" \\| ");
  17.                 String side = data[0];
  18.                 String user = data[1];
  19.  
  20.                 boolean exists = false;
  21.                 sidesWithUsers.putIfAbsent(side, new ArrayList<>());
  22.                 for (Map.Entry<String, List<String>> pair : sidesWithUsers.entrySet()) {
  23.                     List<String> users = pair.getValue();
  24.                     if (users.contains(user)) {
  25.                         exists = true;
  26.                         break;
  27.                     }
  28.                 }
  29.  
  30.                 if (!exists) {
  31.                     sidesWithUsers.get(side).add(user);
  32.                 }
  33.  
  34.             } else if (input.contains(" -> ")) {
  35.                 String[] data = input.split(" -> ");
  36.                 String user = data[0];
  37.                 String side = data[1];
  38.  
  39.                 sidesWithUsers.putIfAbsent(side, new ArrayList<>());
  40.  
  41.                 for (Map.Entry<String, List<String>> pair : sidesWithUsers.entrySet()) {
  42.                     List<String> users = pair.getValue();
  43.                     if (users.contains(user)) {
  44.                         users.remove(user);
  45.                         break;
  46.                     }
  47.                 }
  48.  
  49.                 sidesWithUsers.get(side).add(user);
  50.                 System.out.println(user + " joins the " + side + " side!");
  51.             }
  52.         }
  53.  
  54.         sidesWithUsers.entrySet().stream()
  55.                 .sorted((v1, v2) -> Integer.compare(v2.getValue().size(), v1.getValue().size()))
  56.                 .filter(e -> e.getValue().size() > 0)
  57.                 .forEach(kvp -> {
  58.                     System.out.println("Side: " + kvp.getKey() + ", " + "Members: " + kvp.getValue().size());
  59.                     Collections.sort(kvp.getValue());
  60.                     kvp.getValue().forEach(user -> {
  61.                         System.out.println("! " + user);
  62.                     });
  63.                 });
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement