Advertisement
did0sh

p09_TeamProject

Oct 18th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace p09_TeamWorkProjects
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Dictionary<string, Team> team = new Dictionary<string, Team>();
  14.  
  15. int n = int.Parse(Console.ReadLine());
  16.  
  17. for (int i = 0; i < n; i++)
  18. {
  19. string input = Console.ReadLine();
  20. string[] tokens = input.Split('-');
  21.  
  22. string creator = tokens[0];
  23. string teamName = tokens[1];
  24.  
  25. if (!team.ContainsKey(creator))
  26. {
  27. Team currentTeam = new Team();
  28. currentTeam.Name = teamName;
  29. if (!team.Values.Any(x=> x.Name.Equals(currentTeam.Name)))
  30. {
  31. team.Add(creator, currentTeam);
  32.  
  33. Console.WriteLine($"Team {teamName} has been created by {creator}!");
  34. }
  35. else
  36. {
  37. Console.WriteLine($"Team {teamName} was already created!");
  38. }
  39. }
  40. else
  41. {
  42. Console.WriteLine($"{creator} cannot create another team!");
  43. }
  44.  
  45. }
  46.  
  47.  
  48. string secondInput = Console.ReadLine();
  49. List<string> teamMembers = new List<string>();
  50.  
  51. while (secondInput != "end of assignment")
  52. {
  53. string[] teamInfo = secondInput.Split(new char[] { '-', '>' },StringSplitOptions.RemoveEmptyEntries);
  54. string personJoinName = teamInfo[0];
  55. string joinTeamName = teamInfo[1];
  56.  
  57.  
  58.  
  59. if (team.Values.Any(x=> x.Name.Equals(joinTeamName)))
  60. {
  61. if (!team.Keys.Any(x=> x.Equals(personJoinName)) && !team.Values.Any(x => x.TeamMembers.Any(y => y.Equals(personJoinName))))
  62. {
  63. var creatorOfTheTeam = team.First(x => x.Value.Name.Equals(joinTeamName));
  64. team[creatorOfTheTeam.Key].TeamMembers.Add(personJoinName);
  65. }
  66. else
  67. {
  68. Console.WriteLine($"Member {personJoinName} cannot join team {joinTeamName}!");
  69. }
  70.  
  71. }
  72. else
  73. {
  74. Console.WriteLine($"Team {joinTeamName} does not exist!");
  75. }
  76.  
  77.  
  78.  
  79.  
  80. secondInput = Console.ReadLine();
  81. }
  82.  
  83. foreach (var element in team.Where(x => x.Value.TeamMembers.Count > 0).OrderByDescending(x => x.Value.TeamMembers.Count).ThenBy(x => x.Value.Name))
  84. {
  85. Console.WriteLine(element.Value.Name);
  86. Console.WriteLine($"- {element.Key}");
  87.  
  88. foreach (var member in element.Value.TeamMembers.OrderBy(x => x))
  89. {
  90. Console.WriteLine($"-- {member}");
  91. }
  92. }
  93.  
  94. Console.WriteLine("Teams to disband:");
  95.  
  96. foreach (var disbandTeam in team.Where(x => x.Value.TeamMembers.Count == 0).OrderBy(x => x.Value.Name))
  97. {
  98. Console.WriteLine(disbandTeam.Value.Name);
  99. }
  100.  
  101. }
  102. }
  103. class Team
  104. {
  105. public string Name { get; set; }
  106. public List<string> TeamMembers = new List<string>();
  107.  
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement