Guest User

Untitled

a guest
Nov 6th, 2021
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace TeamworkProjects
  6. {
  7.     class Team
  8.     {
  9.         public string TeamCreator { get; set; }
  10.         public string TeamName { get; set; }
  11.         public List<string> Members { get; set; } = new List<string>();
  12.  
  13.         public Team(string teamCreator, string teamName)
  14.         {
  15.             TeamCreator = teamCreator;
  16.             TeamName = teamName;
  17.         }
  18.     }
  19.     class Program
  20.     {
  21.         static void Main(string[] args)
  22.         {
  23.             int numberOfTeams = int.Parse(Console.ReadLine());
  24.  
  25.             List<Team> teams = new List<Team>();
  26.             string input = string.Empty;
  27.  
  28.             for (int i = 0; i < numberOfTeams; i++)
  29.             {
  30.                 input = Console.ReadLine();
  31.                 string[] cmd = input.Split('-');
  32.                 bool isTeamNameFree = true;
  33.                 bool isGreatorNameFree = true;
  34.                 Team currTeam = new Team(cmd[0], cmd[1]);
  35.  
  36.                 foreach (Team item in teams)
  37.                 {
  38.                     if (item.TeamCreator.Contains(cmd[0]))
  39.                     {
  40.                         isGreatorNameFree = false;
  41.                         break;
  42.                     }
  43.                     else if (item.TeamName.Contains(cmd[1]))
  44.                     {
  45.                         isTeamNameFree = false;
  46.                         break;
  47.                     }
  48.                 }
  49.  
  50.                 if (isTeamNameFree == true && isGreatorNameFree == true || teams.Count == 0)
  51.                 {
  52.                     teams.Add(currTeam);
  53.                     Console.WriteLine($"Team {currTeam.TeamName} has been created by {currTeam.TeamCreator}!");
  54.                 }
  55.                 else if (isTeamNameFree == false) Console.WriteLine($"Team {currTeam.TeamName} was already created!");
  56.                 else if (isGreatorNameFree == false) Console.WriteLine($"{currTeam.TeamCreator} cannot create another team!");
  57.             }
  58.  
  59.             input = Console.ReadLine();
  60.  
  61.             while (input != "end of assignment")
  62.             {
  63.                 string[] cmd = input.Split("->");
  64.                 bool isMember = false;
  65.                 bool isTeamCreated = false;
  66.  
  67.                 foreach (Team item in teams)
  68.                 {
  69.                     if (item.Members.Contains(cmd[0]) || item.TeamCreator.Contains(cmd[0]))
  70.                     {
  71.                         isMember = true;
  72.                     }
  73.  
  74.                     if (item.TeamName.Contains(cmd[1]))
  75.                     {
  76.                         isTeamCreated = true;
  77.                     }
  78.                 }
  79.  
  80.                 if (isTeamCreated == false) Console.WriteLine($"Team {cmd[1]} does not exist!");
  81.                 if (isMember == true) Console.WriteLine($"Member {cmd[0]} cannot join team {cmd[1]}!");
  82.                 if (isTeamCreated == true && isMember == false)
  83.                 {
  84.                     for (int i = 0; i < teams.Count; i++)
  85.                     {
  86.                         if (teams[i].TeamName == cmd[1]) teams[i].Members.Add(cmd[0]);
  87.                     }
  88.                 }
  89.  
  90.                 input = Console.ReadLine();
  91.             }
  92.  
  93.             List<Team> validTeam = new List<Team>();
  94.             List<Team> disbandTeam = new List<Team>();
  95.  
  96.             for (int i = 0; i < teams.Count; i++)
  97.             {
  98.                 if (teams[i].Members.Count == 0)
  99.                 {
  100.                     disbandTeam.Add(teams[i]);
  101.                 }
  102.                 else
  103.                 {
  104.                     validTeam.Add(teams[i]);
  105.                 }
  106.             }
  107.  
  108.             foreach (Team item in validTeam.OrderByDescending(x => x.Members.Count).ThenBy(x => x.TeamName))
  109.             {
  110.                 Console.WriteLine(item.TeamName);
  111.                 Console.WriteLine($"- {item.TeamCreator}");
  112.                 foreach (string member in item.Members.OrderBy(member => member))
  113.                 {
  114.                     Console.WriteLine($"-- {member}");
  115.                 }
  116.             }
  117.  
  118.             Console.WriteLine("Teams to disband:");
  119.  
  120.             if (disbandTeam != null)
  121.             {
  122.                 foreach (Team item in disbandTeam.OrderBy(x => x.TeamName))
  123.                 {
  124.                     Console.WriteLine(item.TeamName);
  125.                 }
  126.             }
  127.         }
  128.     }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment