Advertisement
Guest User

Activity Tracker

a guest
May 27th, 2015
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.55 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. public class ActivityTracker
  6. {
  7.     public static void Main()
  8.     {
  9.         int countOfEntries = int.Parse(Console.ReadLine());
  10.  
  11.         var trackerData = new SortedDictionary<int, SortedDictionary<string, int>>();
  12.  
  13.         for (int i = 0; i < countOfEntries; i++)
  14.         {
  15.             string[] inputParams = Console.ReadLine().Split();
  16.  
  17.             int month = int.Parse(inputParams[0].Split('/')[1]);
  18.             string name = inputParams[1];
  19.             int distance = int.Parse(inputParams[2]);
  20.  
  21.             if (!trackerData.ContainsKey(month))
  22.             {
  23.                 trackerData.Add(month, new SortedDictionary<string, int>());
  24.             }
  25.  
  26.             if (!trackerData[month].ContainsKey(name))
  27.             {
  28.                 trackerData[month].Add(name, 0);
  29.             }
  30.  
  31.             trackerData[month][name] += distance;
  32.         }
  33.  
  34.         StringBuilder output = new StringBuilder();
  35.  
  36.         foreach (var monthData in trackerData)
  37.         {
  38.             output.AppendFormat("{0}: ", monthData.Key);
  39.  
  40.             int index = 0;
  41.             foreach (var keyValuePair in monthData.Value)
  42.             {
  43.                 output.AppendFormat("{0}({1})", keyValuePair.Key, keyValuePair.Value);
  44.  
  45.                 if (index < monthData.Value.Count - 1)
  46.                 {
  47.                     output.Append(", ");
  48.                 }
  49.  
  50.                 index++;
  51.             }
  52.  
  53.             output.AppendLine();
  54.         }
  55.  
  56.         Console.WriteLine(output);
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement