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
- {
- public class TeamworkProjects
- {
- public static void Main()
- {
- int numberOfTriesToRegisterTeam = int.Parse(Console.ReadLine());
- Dictionary<string, Team> creatorAndTeam = new Dictionary<string, Team>();
- for (int i = 0; i < numberOfTriesToRegisterTeam; i++)
- {
- string[] info = Console.ReadLine()
- .Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries)
- .ToArray();
- string creator = info[0];
- string teamName = info[1];
- if (!creatorAndTeam.ContainsKey(creator))
- {
- Team currTeam = new Team();
- currTeam.teamName = teamName;
- if (!creatorAndTeam.Values.Any(x => x.teamName.Equals(currTeam.teamName)))
- {
- creatorAndTeam.Add(creator, currTeam);
- Console.WriteLine("Team {1} has been created by {0}!", creator, currTeam.teamName);
- }
- else
- {
- Console.WriteLine("Team {0} was already created!", currTeam.teamName);
- }
- }
- else
- {
- Console.WriteLine("{0} cannot create another team!", creator);
- }
- }
- string commandLine = Console.ReadLine();
- while (!commandLine.Equals("end of assignment"))
- {
- string[] operationsOFMembers = commandLine
- .Split(new char[] { '-', '>' }, StringSplitOptions.RemoveEmptyEntries)
- .ToArray();
- string userTryingToJoin = operationsOFMembers[0];
- string nameOfTeamToJoin = operationsOFMembers[1];
- if (creatorAndTeam.Values.Any(x => x.teamName.Equals(nameOfTeamToJoin)))
- {
- if (!creatorAndTeam.Values.Any(x => x.members.Any(member => member.Equals(userTryingToJoin))) && !creatorAndTeam.Keys.Any(x => x.Equals(userTryingToJoin)))
- {
- KeyValuePair<string, Team> creatorOfTheTeam = creatorAndTeam.First(x => x.Value.teamName.Equals(nameOfTeamToJoin));
- creatorAndTeam[creatorOfTheTeam.Key].members.Add(userTryingToJoin);
- }
- else
- {
- Console.WriteLine("Member {0} cannot join team {1}!", userTryingToJoin, nameOfTeamToJoin);
- }
- }
- else
- {
- Console.WriteLine("Team {0} does not exist!", nameOfTeamToJoin);
- }
- commandLine = Console.ReadLine();
- }
- foreach (var team in creatorAndTeam.Where(x => x.Value.members.Count > 0).OrderByDescending(x => x.Value.members.Count).ThenBy(x => x.Value.teamName))
- {
- Console.WriteLine("{0}", team.Value.teamName);
- Console.WriteLine("- {0}", team.Key);
- foreach (var member in team.Value.members.OrderBy(x => x))
- {
- Console.WriteLine("-- {0}", member);
- }
- }
- Console.WriteLine("Teams to disband:");
- foreach (var emptyTeam in creatorAndTeam.Where(x => x.Value.members.Count == 0).OrderBy(x => x.Value.teamName))
- {
- Console.WriteLine("{0}", emptyTeam.Value.teamName);
- }
- }
- public class Team
- {
- public string teamName { get; set; }
- public List<string> members = new List<string>();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement