Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Problem_7.__The_V_Logger
- {
- class Program
- {
- static void Main(string[] args)
- {
- //------------- READING INPUT-----------------//
- string[] inputInf = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries);
- Dictionary<string, List<string>> joinedPersons = new Dictionary<string, List<string>>();
- Dictionary<string, int[]> followedAndFollowers = new Dictionary<string, int[]>();
- while (inputInf[0]?.ToLower() != "statistics")
- {
- string name = inputInf[0];
- string command = inputInf[1];
- switch (command.ToLower())
- {
- case "joined":
- if (joinedPersons.ContainsKey(name) == false)
- {
- joinedPersons[name] = new List<string>();
- followedAndFollowers[name] = new int[2];
- }
- break;
- case "followed":
- string followerVlogger = name;
- string followedVlogger = inputInf[2];
- if (joinedPersons.ContainsKey(followerVlogger) && joinedPersons.ContainsKey(followedVlogger))
- {
- if (joinedPersons[followedVlogger].Contains(followerVlogger) == false && followedVlogger != followerVlogger)
- {
- joinedPersons[followedVlogger].Add(followerVlogger);
- followedAndFollowers[followedVlogger][0]++;
- followedAndFollowers[name][1]++;
- }
- }
- break;
- }
- inputInf = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries);
- }
- Console.WriteLine($"The V-Logger has a total of {joinedPersons.Count} vloggers in its logs.");
- var orderedPeople = followedAndFollowers.OrderByDescending(x => x.Value[0]).ThenBy(x => x.Value[1])
- .ToDictionary(x => x.Key, x => x.Value);
- int count = 1;
- string userToRemove = "";
- foreach (KeyValuePair<string, int[]> kvp in orderedPeople)
- {
- userToRemove = kvp.Key;
- Console.WriteLine($"{count}. {kvp.Key} : {orderedPeople[kvp.Key][0]} followers, {orderedPeople[kvp.Key][1]} following");
- count++;
- if (joinedPersons[kvp.Key].Count > 0)
- {
- foreach (string follower in joinedPersons[kvp.Key].OrderBy(x => x))
- {
- Console.WriteLine($"* {follower}");
- }
- }
- break;
- }
- orderedPeople.Remove(userToRemove);
- foreach (KeyValuePair<string, int[]> kvp in orderedPeople)
- {
- Console.WriteLine($"{count}. {kvp.Key} : {orderedPeople[kvp.Key][0]} followers, {orderedPeople[kvp.Key][1]} following");
- count++;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment