Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- namespace TeamworkProjects
- {
- class Program
- {
- static void Main(string[] args)
- {
- int countTeams = int.Parse(Console.ReadLine());
- List<Teams> teams = new List<Teams>();
- for (int i = 0; i < countTeams; i++)
- {
- string[] team = Console.ReadLine().Split("-");
- Teams arg = new Teams(team[0], team[1]);
- Teams existingTeam = teams.Find(x => x.TeamName == team[1]);
- Teams existingCreator = teams.Find(x => x.Creator == team[0]);
- if (existingTeam != null)
- {
- Console.WriteLine($"Team {team[1]} was already created!");
- continue;
- }
- if (existingCreator != null)
- {
- Console.WriteLine($"{team[0]} cannot create another team!");
- continue;
- }
- Console.WriteLine($"Team {team[1]} has been created by {team[0]}!");
- teams.Add(arg);
- }
- while (true)
- {
- string[] members = Console.ReadLine().Split("->");
- if (members[0] == "end of assignment")
- {
- break;
- }
- Teams existingTeam = teams.Find(x => x.TeamName == members[1]);
- Teams existingMember = teams.Find(x => x.Member.Contains(members[0]) || x.Creator == members[0]);
- if (existingTeam == null)
- {
- Console.WriteLine($"Team {members[1]} does not exist!");
- continue;
- }
- if (existingMember != null)
- {
- Console.WriteLine($"Member {members[0]} cannot join team {members[1]}!");
- continue;
- }
- existingTeam.Member.Add(members[0]);
- }
- List<string> disbandedTeams = teams.Where(t => t.Member.Count == 0)
- .OrderBy(t => t.TeamName).Select(t => t.TeamName).ToList();
- teams.RemoveAll(t => t.Member.Count == 0);
- List<Teams> sortedTeams = teams.OrderByDescending(t => t.Member.Count)
- .ThenBy(t => t.TeamName).ToList();
- foreach (Teams item in sortedTeams)
- {
- Console.Write(item.ToString());
- }
- Console.WriteLine("Teams to disband:");
- foreach (string item in disbandedTeams)
- {
- Console.Write(item.ToString());
- }
- }
- }
- class Teams
- {
- public Teams(string creator, string teamName)
- {
- this.Creator = creator;
- this.TeamName = teamName;
- this.Member = new List<string>();
- }
- public string Creator { get; set; }
- public string TeamName { get; set; }
- public List<string> Member { get; set; }
- public override string ToString()
- {
- List<string> sortedMembers = this.Member.OrderBy(a => a).ToList();
- string output = $"{this.TeamName}\n";
- output += $"- {this.Creator}\n";
- for (int i = 0; i < sortedMembers.Count; i++)
- {
- output += $"-- {sortedMembers[i]}\n";
- }
- return output;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement