Advertisement
simonradev

TeamworkProjectsUpdate

Feb 9th, 2017
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.13 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class TeamsAndMembers
  6. {
  7.     public static void Main()
  8.     {
  9.         var teams = new List<Team>();
  10.  
  11.         var n = int.Parse(Console.ReadLine());
  12.  
  13.         for (int i = 0; i < n; i++)
  14.         {
  15.             var tokens = Console.ReadLine()
  16.                 .Split('-');
  17.  
  18.             var creator = tokens[0];
  19.             var teamName = tokens[1];
  20.  
  21.             var currentTeam = new Team();
  22.             currentTeam.Name = teamName;
  23.             currentTeam.Members = new List<string>();
  24.             currentTeam.CreatorName = creator;
  25.  
  26.             if (teams.Any(t => t.Name == teamName))
  27.             {
  28.                 Console.WriteLine($"Team {teamName} was already created!");
  29.             }
  30.             else if (teams.Any(g => g.CreatorName == creator))
  31.             {
  32.                 Console.WriteLine($"{creator} cannot create another team!");
  33.             }
  34.             else
  35.             {
  36.                 Console.WriteLine($"Team {teamName} has been created by {creator}!");
  37.                 teams.Add(currentTeam);
  38.             }
  39.         }
  40.  
  41.         var line = Console.ReadLine();
  42.  
  43.         while (line != "end of assignment")
  44.         {
  45.             var assignmentTokens = line
  46.                 .Split("->".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
  47.  
  48.             var nameOfStudent = assignmentTokens[0];
  49.             var teamToAssign = assignmentTokens[1];
  50.  
  51.             var first = teams.FirstOrDefault(m => m.CreatorName == nameOfStudent);
  52.  
  53.             if (teams.All(k => k.Name != teamToAssign))
  54.             {
  55.                 Console.WriteLine($"Team {teamToAssign} does not exist!");
  56.             }
  57.             else if (teams.Any(v => v.Members.Contains(nameOfStudent))
  58.                 || teams.Any(k => k.CreatorName == nameOfStudent))
  59.             {
  60.                 Console.WriteLine($"Member {nameOfStudent} cannot join team {teamToAssign}!");
  61.             }
  62.             else
  63.             {
  64.                 teams.First(d => d.Name == teamToAssign).Members.Add(nameOfStudent);
  65.             }
  66.  
  67.  
  68.             line = Console.ReadLine();
  69.         }
  70.  
  71.         var teamsWhitMembes = teams
  72.             .Where(m => m.Members.Count > 0)
  73.             .ToList();
  74.         var teamsWhitNoMembers = teams
  75.             .Where(s => s.Members.Count == 0)
  76.             .ToList();
  77.  
  78.  
  79.         //грешката беше в сортирането
  80.         foreach (var team in teamsWhitMembes.OrderByDescending(m => m.Members.Count).ThenBy(t => t.Name))
  81.         {
  82.             Console.WriteLine(team.Name);
  83.             Console.WriteLine("- " + team.CreatorName);
  84.             foreach (var member in team.Members.OrderBy(o => o).ToList())
  85.             {
  86.                 Console.WriteLine("-- " + member);
  87.             }
  88.         }
  89.         Console.WriteLine("Teams to disband:");
  90.         foreach (var team in teamsWhitNoMembers.OrderBy(m => m.Name))
  91.         {
  92.             Console.WriteLine(team.Name);
  93.         }
  94.     }
  95. }
  96.  
  97. class Team
  98. {
  99.     public string Name { get; set; }
  100.     public List<string> Members { get; set; }
  101.     public string CreatorName { get; set; }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement