kalitarix

Force Book

Sep 26th, 2018
464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.94 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ForceBook_03_18
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Dictionary<string, List<string>> forceUsers = new Dictionary<string, List<string>>();
  12.  
  13.  
  14.             while (true)
  15.             {
  16.                 string input = Console.ReadLine();
  17.  
  18.                 if (input == "Lumpawaroo")
  19.                 {
  20.                     break;
  21.                 }
  22.  
  23.                 string[] data = input.Split(new char[] {'|', '-', '>' }, StringSplitOptions.RemoveEmptyEntries);
  24.  
  25.                 if (input.Contains('|'))
  26.                 {
  27.                     string side = data[0].Trim();
  28.                     string user = data[1].Trim();
  29.  
  30.                     if (forceUsers.ContainsKey(side) == false)
  31.                     {
  32.                         if (forceUsers.Values.Any(x => x.Contains(user)))
  33.                         {
  34.                             continue;
  35.                         }
  36.  
  37.                         forceUsers.Add(side, new List<string>());
  38.                     }
  39.  
  40.                     if (forceUsers[side].Contains(user) == false)
  41.                     {
  42.                         forceUsers[side].Add(user);
  43.                     }
  44.  
  45.                 }
  46.                 else if (input.Contains('>'))
  47.                 {
  48.                     string user = data[0].Trim();
  49.                     string side = data[1].Trim();
  50.  
  51.                     if (forceUsers.ContainsKey(side))
  52.                     {
  53.                         if (forceUsers[side].Contains(user))
  54.                         {
  55.                             continue;
  56.                         }
  57.                     }
  58.  
  59.                     foreach (var unit in forceUsers.Values)
  60.                     {
  61.                         if (unit.Contains(user))
  62.                         {
  63.                             unit.Remove(user);
  64.                         }
  65.                     }
  66.  
  67.                     if (forceUsers.ContainsKey(side) == false)
  68.                     {
  69.                         forceUsers.Add(side, new List<string>());
  70.                     }
  71.  
  72.                     forceUsers[side].Add(user);
  73.  
  74.                     Console.WriteLine($"{user} joins the {side} side!");
  75.                 }
  76.             }
  77.  
  78.             forceUsers = forceUsers.OrderByDescending(s => s.Value.Count).ThenBy(s => s.Key).ToDictionary(s => s.Key, s => s.Value);
  79.  
  80.             foreach (var army in forceUsers)
  81.             {
  82.                 string side = army.Key;
  83.                 List<string> soldiers = army.Value.OrderBy(s => s).ToList();
  84.  
  85.                 if (soldiers.Count > 0)
  86.                 {
  87.                     Console.WriteLine($"Side: {side}, Members: {soldiers.Count}");
  88.  
  89.                     foreach (var member in soldiers)
  90.                     {
  91.                         Console.WriteLine($"! {member}");
  92.                     }
  93.                 }
  94.             }
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment