tsekotsolov

CODE: Phoenix Oscar

Oct 28th, 2017
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace P04_CODE
  6. {
  7.     class P04_Code
  8.     {
  9.         class Squad
  10.         {
  11.             public string TeamLeader { get; set; }
  12.  
  13.             public List<string> TeamMembers { get; set; } = new List<string>();
  14.         }
  15.         static void Main()
  16.         {
  17.             var input = Console.ReadLine();
  18.  
  19.             Dictionary<string, Squad> majorSquad = new Dictionary<string, Squad>();
  20.  
  21.             while (input != "Blaze it!")
  22.             {
  23.                 var inputLine = input.Split(new char[] { ' ', '-', '>' }, StringSplitOptions.RemoveEmptyEntries);
  24.                 var teamLeader = inputLine.First();
  25.                 var teamMember = inputLine.Skip(1).First();
  26.  
  27.                 List<string> members = new List<string>();
  28.                 members.Add(teamMember);
  29.  
  30.                 Squad squad = new Squad()
  31.                 {
  32.                     TeamLeader = teamLeader,
  33.                     TeamMembers = members
  34.                 };
  35.  
  36.                 if (!majorSquad.ContainsKey(teamLeader) && teamLeader != teamMember)
  37.                 {
  38.                     majorSquad.Add(teamLeader, squad);
  39.  
  40.                 }
  41.                 else if (majorSquad.ContainsKey(teamLeader) && teamLeader != teamMember
  42.                     && !majorSquad[teamLeader].TeamMembers.Contains(teamMember))
  43.  
  44.                 {
  45.                     majorSquad[teamLeader].TeamMembers.AddRange(members);
  46.                 }
  47.  
  48.                 input = Console.ReadLine();
  49.             }
  50.  
  51.             var sorterDict = new Dictionary<string, int>();
  52.             foreach (var teamleader in majorSquad)
  53.             {
  54.                 var teamMembersCount = teamleader.Value.TeamMembers.Count;
  55.  
  56.                 var team = teamleader.Value.TeamMembers;
  57.  
  58.                 for (int i = 0; i < team.Count; i++)
  59.                 {
  60.                     if (majorSquad.ContainsKey(team[i]) && majorSquad[team[i]].TeamMembers.Contains(teamleader.Key))
  61.                     {
  62.                         teamMembersCount--;
  63.                     }
  64.                 }
  65.  
  66.                 sorterDict.Add(teamleader.Key, teamMembersCount);
  67.             }
  68.             foreach (var teamleader in sorterDict.OrderByDescending(x => x.Value))
  69.             {
  70.                 Console.WriteLine($"{teamleader.Key} : {teamleader.Value} ");
  71.             }
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment