Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Globalization;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApp3
- {
- class Team
- {
- public string Name { get; set; }
- public string Creator { get; set; }
- public List<string> Members { get; set; }
- }
- class Program
- {
- public static object Culture { get; private set; }
- static void Main(string[] args)
- {
- int n = int.Parse(Console.ReadLine());
- var teams = new List<Team>();
- var creators = new List<string>();
- for (int i = 0; i < n; i++)
- {
- var creatingTeam = Console.ReadLine().Split('-').ToList();
- string creator = creatingTeam[0];
- string team = creatingTeam[1];
- if (teams.Any(x=>x.Name==team))
- {
- Console.WriteLine($"Team {team} was already created!");
- }
- else if (creators.Contains(creator))
- {
- Console.WriteLine($"{creator} cannot create another team!");
- }
- else
- {
- var newteam = new Team
- {
- Name = team,
- Creator = creator,
- Members = new List<string>()
- };
- teams.Add(newteam);
- creators.Add(creator);
- Console.WriteLine($"Team {team} has been created by {creator}!");
- }
- }
- while (true)
- {
- var input = Console.ReadLine().Split(new string[] { "->" }, StringSplitOptions.RemoveEmptyEntries).ToList();
- if (input[0] == "end of assignment")
- {
- break;
- }
- string member = input[0];
- string teamToJoin = input[1];
- bool isMember = false;
- foreach (var team in teams)
- {
- if (team.Members.Contains(member))
- {
- isMember = true;
- break;
- }
- }
- var isTeam = teams.FirstOrDefault(x => x.Name == teamToJoin);
- if (isTeam == null)
- {
- Console.WriteLine($"Team {teamToJoin} does not exist!");
- }
- else if (creators.Contains(member))
- {
- Console.WriteLine($"Member {member} cannot join team {teamToJoin}!");
- }
- else if (isMember == true)
- {
- Console.WriteLine($"Member {member} cannot join team {teamToJoin}!");
- }
- else
- {
- isTeam.Members.Add(member);
- }
- }
- foreach (var team in teams.Where(x => x.Members.Count > 0).OrderByDescending(x => x.Members.Count).ThenBy(x => x.Name))
- {
- Console.WriteLine($"{team.Name}");
- Console.WriteLine($"- {team.Creator}");
- foreach (var members in team.Members.OrderBy(x => x))
- {
- Console.WriteLine($"-- {members}");
- }
- }
- Console.WriteLine($"Teams to disband:");
- foreach (var item in teams.Where(x => x.Members.Count == 0).OrderBy(x => x.Name))
- {
- Console.WriteLine(item.Name);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment