Advertisement
kmer

Untitled

Feb 27th, 2020
116
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.Linq;
  3. using System.Collections.Generic;
  4.  
  5. namespace TeamworkProjects
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. int countTeams = int.Parse(Console.ReadLine());
  12. List<Teams> teams = new List<Teams>();
  13.  
  14. for (int i = 0; i < countTeams; i++)
  15. {
  16. string[] team = Console.ReadLine().Split("-");
  17.  
  18. Teams arg = new Teams(team[0], team[1]);
  19. Teams existingTeam = teams.Find(x => x.TeamName == team[1]);
  20. Teams existingCreator = teams.Find(x => x.Creator == team[0]);
  21. if (existingTeam != null)
  22. {
  23. Console.WriteLine($"Team {team[1]} was already created!");
  24. continue;
  25. }
  26.  
  27. if (existingCreator != null)
  28. {
  29. Console.WriteLine($"{team[0]} cannot create another team!");
  30. continue;
  31. }
  32.  
  33. Console.WriteLine($"Team {team[1]} has been created by {team[0]}!");
  34. teams.Add(arg);
  35.  
  36. }
  37.  
  38. while (true)
  39. {
  40.  
  41. string[] members = Console.ReadLine().Split("->");
  42.  
  43. if (members[0] == "end of assignment")
  44. {
  45. break;
  46. }
  47.  
  48. Teams existingTeam = teams.Find(x => x.TeamName == members[1]);
  49. Teams existingMember = teams.Find(x => x.Member.Contains(members[0]) || x.Creator == members[0]);
  50.  
  51. if (existingTeam == null)
  52. {
  53. Console.WriteLine($"Team {members[1]} does not exist!");
  54.  
  55. continue;
  56. }
  57.  
  58. if (existingMember != null)
  59. {
  60. Console.WriteLine($"Member {members[0]} cannot join team {members[1]}!");
  61.  
  62. continue;
  63. }
  64.  
  65.  
  66. existingTeam.Member.Add(members[0]);
  67.  
  68. }
  69.  
  70. List<string> disbandedTeams = teams.Where(t => t.Member.Count == 0)
  71. .OrderBy(t => t.TeamName).Select(t => t.TeamName).ToList();
  72. teams.RemoveAll(t => t.Member.Count == 0);
  73. List<Teams> sortedTeams = teams.OrderByDescending(t => t.Member.Count)
  74. .ThenBy(t => t.TeamName).ToList();
  75. foreach (Teams item in sortedTeams)
  76. {
  77. Console.Write(item.ToString());
  78. }
  79.  
  80. Console.WriteLine("Teams to disband:");
  81.  
  82. foreach (string item in disbandedTeams)
  83. {
  84. Console.Write(item.ToString());
  85. }
  86. }
  87. }
  88.  
  89. class Teams
  90. {
  91. public Teams(string creator, string teamName)
  92. {
  93. this.Creator = creator;
  94. this.TeamName = teamName;
  95. this.Member = new List<string>();
  96. }
  97.  
  98. public string Creator { get; set; }
  99. public string TeamName { get; set; }
  100. public List<string> Member { get; set; }
  101.  
  102. public override string ToString()
  103. {
  104. List<string> sortedMembers = this.Member.OrderBy(a => a).ToList();
  105. string output = $"{this.TeamName}\n";
  106. output += $"- {this.Creator}\n";
  107. for (int i = 0; i < sortedMembers.Count; i++)
  108. {
  109. output += $"-- {sortedMembers[i]}\n";
  110. }
  111. return output;
  112. }
  113. }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement