Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _09_TeamworkProjects
- {
- class Program
- {
- static void Main()
- {
- List<Team> teams = new List<Team>();
- int numberOfTeams = int.Parse(Console.ReadLine());
- for (int i = 0; i < numberOfTeams; i++)
- {
- string[] input = Console.ReadLine().Split("-");
- string creator = input[0];
- string teamName = input[1];
- Team team = new Team(teamName, creator, new List<string>());
- if (teams.Select(t => t.Name).Contains(team.Name) == false)
- {
- if (teams.Select(t => t.Creator).Contains(team.Creator) == false)
- {
- Console.WriteLine($"Team {teamName} has been created by {creator}!");
- teams.Add(team);
- }
- else
- {
- Console.WriteLine($"{creator} cannot create another team!");
- }
- }
- else
- {
- Console.WriteLine($"Team {teamName} was already created!");
- }
- }
- while (true)
- {
- string input = Console.ReadLine();
- if (input == "end of assignment")
- {
- break;
- }
- string[] tokens = input.Split("->");
- string currentMember = tokens[0];
- string teamToJoin = tokens[1];
- if (teams.Any(t => t.Name.Contains(teamToJoin)) == false)
- {
- Console.WriteLine($"Team {teamToJoin} does not exist!");
- }
- else if (teams.Select(t => t.Members).Any(t => t.Contains(currentMember)) ||
- teams.Select(t => t.Creator).Contains(currentMember))
- {
- Console.WriteLine($"Member {currentMember} cannot join team {teamToJoin}!");
- }
- else
- {
- Team exist = teams.First(t => t.Name.Equals(teamToJoin));
- exist.Members.Add(currentMember);
- }
- }
- List<Team> filledTeams = teams.Where(t => t.Members.Count > 0).ToList();
- List<Team> emptyTeams = teams.Where(t => t.Members.Count == 0).ToList();
- foreach (var team in filledTeams.OrderByDescending(t=> t.Members.Count).ThenBy(t=> t.Name))
- {
- Console.WriteLine($"{team.Name}");
- Console.WriteLine($"- {team.Creator}");
- foreach (var member in team.Members.OrderBy(m => m))
- {
- Console.WriteLine($"-- {member}");
- }
- }
- Console.WriteLine("Teams to disband:");
- foreach (var team in emptyTeams.OrderBy(t => t.Name))
- {
- Console.WriteLine($"{team.Name}");
- }
- }
- }
- class Team
- {
- public Team(string name, string creator, List<string> members)
- {
- Name = name;
- Creator = creator;
- Members = members;
- }
- public string Name { get; set; }
- public string Creator { get; set; }
- public List<string> Members { get; set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement