Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- class User_Logs
- {
- static void Main(string[] args)
- {
- SortedDictionary<string, Dictionary<string, int>> dicUserLogs = new SortedDictionary<string, Dictionary<string, int>>();
- string inputLine = Console.ReadLine();
- while (! inputLine.Equals("end"))
- {
- string[] inputSplit = inputLine.Split(new char[] { ' ','=' }, StringSplitOptions.RemoveEmptyEntries);
- string ip = inputSplit[1];
- string userName = inputSplit[inputSplit.Length - 1];
- InsertUserName(dicUserLogs, userName);
- InsertIpAndUserName(dicUserLogs, userName, ip);
- inputLine = Console.ReadLine();
- }
- Console.WriteLine();
- InsertResult(dicUserLogs);
- Console.WriteLine();
- }
- private static void InsertResult(SortedDictionary<string, Dictionary<string, int>> dicUserLogs)
- {
- foreach (var dic in dicUserLogs)
- {
- Console.WriteLine("{0}: ",dic.Key);
- int count = dic.Value.Count;
- foreach (var di in dic.Value)
- {
- if (count > 1)
- {
- Console.Write("{0} => {1}, ",di.Key,di.Value);
- }
- else
- {
- Console.Write("{0} => {1}.", di.Key, di.Value);
- }
- count--;
- }
- Console.WriteLine();
- }
- }
- private static void InsertIpAndUserName(SortedDictionary<string, Dictionary<string, int>> dicUserLogs, string userName, string ip)
- {
- int count = 1;
- if (! dicUserLogs[userName].ContainsKey(ip))
- {
- dicUserLogs[userName][ip] = count;
- }
- else if (dicUserLogs[userName].ContainsKey(ip))
- {
- count++;
- dicUserLogs[userName][ip] = count;
- }
- }
- private static void InsertUserName(SortedDictionary<string, Dictionary<string, int>> dicUserLogs, string userName)
- {
- if (! dicUserLogs.ContainsKey(userName))
- {
- dicUserLogs.Add(userName, new Dictionary<string, int>());
- }
- }
- }
Add Comment
Please, Sign In to add comment