elena1234

TheV_Logger-with class

Jan 6th, 2021 (edited)
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.36 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace TheV_Logger
  6. {
  7.     public class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             var listOfVloggers = new List<Vlogger>();
  12.             while (true)
  13.             {
  14.                 string[] input = Console.ReadLine().Split();
  15.                 if (input[0] == "Statistics")
  16.                 {
  17.                     break;
  18.                 }
  19.  
  20.                 if (input[1] == "joined")
  21.                 {
  22.                     string name = input[0];
  23.                     var newVlogger = new Vlogger(name);
  24.                     if (listOfVloggers.Any(x => x.Name == name))
  25.                     {
  26.                         continue;
  27.                     }
  28.  
  29.                     listOfVloggers.Add(newVlogger);
  30.                     newVlogger.Name = name;
  31.                     newVlogger.Followers = new HashSet<string>();
  32.                     newVlogger.Following = new HashSet<string>();
  33.                 }
  34.  
  35.                 else if (input[1] == "followed")
  36.                 {
  37.                     var firstVlogger = input[0];
  38.                     var secondVlogger = input[2];
  39.                     if (firstVlogger == secondVlogger) continue;
  40.                     if (listOfVloggers.Any(x => x.Name == firstVlogger) && listOfVloggers.Any(x => x.Name == secondVlogger))
  41.                     {
  42.                         Vlogger findFirsVlogger = listOfVloggers.First(v => v.Name == firstVlogger);
  43.                         findFirsVlogger.AddFollowing(secondVlogger);
  44.                         Vlogger findSecondVlogger = listOfVloggers.First(v => v.Name == secondVlogger);
  45.                         findSecondVlogger.AddFollower(firstVlogger);
  46.                     }
  47.                 }
  48.             }
  49.  
  50.             Console.WriteLine($"The V-Logger has a total of {listOfVloggers.Count} vloggers in its logs.");
  51.             var famousVlogger = listOfVloggers.OrderByDescending(x => x.Followers.Count).ThenBy(x => x.Following.Count).First();
  52.             if (famousVlogger.Followers.Count > 0)
  53.             {
  54.                 Console.WriteLine($"1. {famousVlogger.Name} : {famousVlogger.Followers.Count} followers, {famousVlogger.Following.Count} following");
  55.                 foreach (var follower in famousVlogger.Followers.OrderBy(x => x))
  56.                 {
  57.                     Console.WriteLine($"*  {follower}");
  58.                 }
  59.  
  60.                 listOfVloggers.Remove(famousVlogger);
  61.                 int count = 2;
  62.                 foreach (var vlogger in listOfVloggers.OrderByDescending(x => x.Followers.Count()).ThenBy(x => x.Following.Count()))
  63.                 {
  64.                     Console.WriteLine($"{count}. {vlogger.Name} : {vlogger.Followers.Count} followers, {vlogger.Following.Count} following");
  65.                     count++;
  66.                 }
  67.             }
  68.         }
  69.     }
  70. }
  71.  
  72.  
  73. public class Vlogger
  74. {
  75.     public string Name { get; set; }
  76.     public HashSet<string> Followers { get; set; }
  77.     public HashSet<string> Following { get; set; }
  78.  
  79.     public Vlogger(string name)
  80.     {
  81.         this.Name = Name;
  82.         this.Followers = new HashSet<string>();
  83.         this.Following = new HashSet<string>();
  84.     }
  85.  
  86.     public void AddFollowing(string name)
  87.     {
  88.         Following.Add(name);
  89.     }
  90.  
  91.     public void AddFollower(string name)
  92.     {
  93.         Followers.Add(name);
  94.     }
  95. }
Add Comment
Please, Sign In to add comment