Advertisement
Ivakis

Logs Aggregator

Oct 17th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace P08_UserLogs
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. var userLogs = new Dictionary<string, Dictionary<string, int>>();// user, ip, duration
  14.  
  15. var count = int.Parse(Console.ReadLine());
  16.  
  17. for (int i = 0; i < count; i++)
  18. {
  19. var input = Console.ReadLine().Split();
  20.  
  21. var ip = input[0];
  22. var user = input[1];
  23. var duration = int.Parse(input[2]);
  24.  
  25.  
  26. if (!userLogs.ContainsKey(user))
  27. {
  28. userLogs.Add(user, new Dictionary<string, int>());
  29. }
  30. if (!userLogs[user].ContainsKey(ip))
  31. {
  32. userLogs[user].Add(ip, 0);
  33. }
  34.  
  35. userLogs[user][ip] += duration;
  36. }
  37.  
  38. foreach (KeyValuePair<string, Dictionary<string, int>> user in userLogs.OrderBy(a => a.Key))// users
  39. {
  40.  
  41. foreach (KeyValuePair<string, int> item in user.Value) // ip, duration
  42. {
  43. Console.WriteLine($"{user.Key}: {user.Value.Values.Sum()} [{string.Join(", ", user.Value.Keys.OrderBy(a => a))}]");
  44. break;
  45. }
  46.  
  47. }
  48. }
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement