Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace TeamWorkProjects
- {
- class TeamWorkProjects
- {
- static void Main(string[] args)
- {
- int numberOfTeams = int.Parse(Console.ReadLine());
- List<Team> teamList = new List<Team>();
- ReadTeams(numberOfTeams, teamList);
- ReadMembers(teamList);
- List<string> disbandedTeams = new List<string>();
- DisbandEmptyTeams(teamList, disbandedTeams);
- teamList = teamList.OrderBy(x => x.TeamName).ToList();
- teamList = teamList.OrderByDescending(x => x.Members.Count).ToList();
- //SortTeamsByMemberNames(teamList);
- PrintTeams(teamList);
- PrintDisbanded(disbandedTeams);
- }
- private static void SortTeamsByMemberNames(List<Team> teamList)
- {
- foreach (Team tm in teamList)
- {
- tm.Members.Sort();
- }
- }
- private static void PrintDisbanded(List<string> disbandedTeams)
- {
- Console.WriteLine("Teams to disband:");
- foreach (string dt in disbandedTeams)
- {
- Console.WriteLine("{0}", dt);
- }
- }
- private static void DisbandEmptyTeams(List<Team> teamList, List<string> disbandedList)
- {
- for (int i = 0; i < teamList.Count; i++)
- {
- if (teamList[i].Members.Count == 1)
- {
- disbandedList.Add(teamList[i].TeamName);
- teamList.Remove(teamList[i]);
- }
- }
- }
- private static void ReadMembers(List<Team> teamList)
- {
- while (true)
- {
- string input = Console.ReadLine();
- if (input == "end of assignment")
- {
- break;
- }
- string[] inputArr = input.Split('-');
- string member = inputArr[0];
- string team = inputArr[1];
- team = team.Remove(0, 1);
- bool teamExist = false;
- foreach (Team tm in teamList)
- {
- if (tm.TeamName == team)
- {
- teamExist = true;
- }
- }
- if (!teamExist)
- {
- Console.WriteLine("Team {0} does not exist!", team);
- }
- else
- {
- bool alredyMember = false;
- foreach (Team tm in teamList)
- {
- if (tm.Members.Contains(member))
- {
- Console.WriteLine($"Member {member} cannot join team {tm.TeamName}!");
- alredyMember = true;
- break;
- }
- }
- if (!alredyMember)
- {
- foreach (Team tm in teamList)
- {
- if (tm.TeamName == team)
- {
- tm.Members.Add(member);
- break;
- }
- }
- }
- }
- }
- }
- private static void PrintTeams(List<Team> teamList)
- {
- foreach (Team tm in teamList)
- {
- Console.WriteLine("{0}", tm.TeamName);
- foreach (string member in tm.Members)
- {
- if (member == tm.CreatorsName)
- {
- Console.WriteLine("- {0}", member);
- }
- else
- {
- Console.WriteLine("-- {0}", member);
- }
- }
- }
- }
- private static void ReadTeams(int numberOfTeams, List<Team>teamList)
- {
- for (int i = 0; i < numberOfTeams; i++)
- {
- string[] input = Console.ReadLine().Split('-').ToArray();
- string creatorName = input[0];
- string teamName = input[1];
- Team currentTeam = new Team(teamName, creatorName);
- currentTeam.Members.Add(creatorName);
- bool teamExist = false;
- foreach (Team tm in teamList)
- {
- if (tm.TeamName == currentTeam.TeamName)
- {
- Console.WriteLine($"Team {currentTeam.TeamName} was already created!");
- teamExist = true;
- break;
- }
- else if (tm.CreatorsName == currentTeam.CreatorsName)
- {
- Console.WriteLine($"{currentTeam.CreatorsName} cannot create another team!");
- teamExist = true;
- break;
- }
- }
- if (!teamExist)
- {
- //currentTeam.CreatorsName = creatorName;
- teamList.Add(currentTeam);
- Console.WriteLine("Team {0} has been created by {1}!", currentTeam.TeamName, currentTeam.CreatorsName);
- }
- }
- }
- }
- class Team
- {
- public Team(string teamName, string creatorsName)
- {
- TeamName = teamName;
- CreatorsName = creatorsName;
- }
- public string TeamName { get; set; }
- public string CreatorsName { get; set; }
- public List<string> Members = new List<string>();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement