Advertisement
NinoB

ForceBook

Mar 15th, 2018
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.11 KB | None | 0 0
  1. import com.sun.javafx.collections.MappingChange;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.lang.reflect.Array;
  7. import java.util.*;
  8. import java.util.stream.Collectors;
  9.  
  10. import static java.util.Comparator.comparingInt;
  11. import static java.util.stream.Collectors.toMap;
  12.  
  13. public class ForceBook {
  14.     public static void main(String[] args) throws IOException {
  15.  
  16.         BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
  17.  
  18.         TreeMap<String, ArrayList<String>> result = new TreeMap<>();
  19.  
  20.         while (true) {
  21.             String input = console.readLine();
  22.  
  23.             if (input.equals("Lumpawaroo")) {
  24.                 break;
  25.             } else {
  26.                 String[] sidesUsers = input.split("([^a-zA-z\\s?]+)");
  27.                 String[] separator = input.trim().split("([a-zA-Z\\s?]+)");
  28.  
  29.                 if (Arrays.asList(separator).contains("|")) {
  30.                     String forceSide = sidesUsers[0].trim();
  31.                     String forceUser = sidesUsers[1].trim();
  32.  
  33.                     if (!result.containsKey(forceSide)) {
  34.                         result.put(forceSide, new ArrayList<String>());
  35.                         result.get(forceSide).add(forceUser);
  36.                     } else if (!result.get(forceSide).contains(forceUser)) {
  37.                         result.get(forceSide).add(forceUser);
  38.                     }
  39.                 } else if (Arrays.asList(separator).contains("->")) {
  40.                     String forceSide = sidesUsers[1].trim();
  41.                     String forceUser = sidesUsers[0].trim();
  42.  
  43.                     if (!result.containsKey(forceSide)) {
  44.                         result.put(forceSide, new ArrayList<String>());
  45.                         result.get(forceSide).add(forceUser);
  46.                     } else if (!result.get(forceSide).contains(forceUser)) {
  47.                         for (ArrayList<String> x :
  48.                                 result.values()) {
  49.                             for (String y :
  50.                                     x) {
  51.                                 if (y.equals(forceUser)) {
  52.                                     x.remove(y);
  53.                                     break;
  54.                                 }
  55.                             }
  56.                         }
  57.                         result.get(forceSide).add(forceUser);
  58.                         System.out.printf("%s joins the %s side!%n", forceUser, forceSide);
  59.                     }
  60.                 }
  61.             }
  62.         }
  63.  
  64.         for (Map.Entry x :
  65.                 result.entrySet()) {
  66.             if (result.get(x.getKey()).size() > 0) {
  67.                 System.out.print(String.format("Side: %s, ", x.getKey()));
  68.                 System.out.print(String.format("Members: %d%n", result.get(x.getKey()).size()));
  69.                 for (ArrayList<String> z :
  70.                         result.values()) {
  71.                     for (String y :
  72.                             z) {
  73.                         System.out.printf("! %s%n", y);
  74.                     }
  75.                 }
  76.             }
  77.         }
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement