MiroslavKisov

HornetArmada

Dec 3rd, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.24 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace _02.HornetArmada
  6. {
  7.     public class StartUp
  8.     {
  9.         public static void Main()
  10.         {
  11.             Dictionary<string, Dictionary<string, long>> hornetArmy = new Dictionary<string, Dictionary<string, long>>();
  12.             Dictionary<string, long> hornetActivity = new Dictionary<string, long>();
  13.             int N = int.Parse(Console.ReadLine());
  14.             for (int i = 0; i < N; i++)
  15.             {
  16.                 var commandArgs = Console.ReadLine()
  17.                     .Split(new char[] { ' ', '=', ':', '>', '-' }, StringSplitOptions.RemoveEmptyEntries)
  18.                     .ToArray();
  19.                 long activity = long.Parse(commandArgs[0]);
  20.                 string legionName = commandArgs[1];
  21.                 string soldierType = commandArgs[2];
  22.                 long soldierCount = long.Parse(commandArgs[3]);
  23.                 if (!hornetArmy.ContainsKey(legionName))
  24.                 {
  25.                     hornetArmy.Add(legionName, new Dictionary<string, long>());
  26.                 }
  27.                 if (!hornetActivity.ContainsKey(legionName))
  28.                 {
  29.                     hornetActivity.Add(legionName, activity);
  30.                 }
  31.                 if (!hornetArmy[legionName].ContainsKey(soldierType))
  32.                 {
  33.                     hornetArmy[legionName].Add(soldierType, soldierCount);
  34.                     if (hornetActivity.ContainsKey(legionName) && hornetActivity[legionName] < activity)
  35.                     {
  36.                         hornetActivity[legionName] = activity;
  37.                     }
  38.                 }
  39.                 else
  40.                 {
  41.                     hornetArmy[legionName][soldierType] += soldierCount;
  42.                     if (hornetActivity.ContainsKey(legionName) && hornetActivity[legionName] < activity)
  43.                     {
  44.                         hornetActivity[legionName] = activity;
  45.                     }
  46.                 }
  47.             }
  48.             var printInput = Console.ReadLine()
  49.                 .Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries)
  50.                 .ToArray();
  51.             if (printInput.Length == 2)
  52.             {
  53.                 long givenActivity = long.Parse(printInput[0]);
  54.                 string givenSoldierType = printInput[1];
  55.                 foreach (var hornetLegion in hornetArmy.Where(y => hornetArmy[y.Key].ContainsKey(givenSoldierType)).OrderByDescending(x => x.Value[givenSoldierType]))
  56.                 {
  57.                     if (hornetActivity[hornetLegion.Key] < givenActivity)
  58.                     {
  59.                         Console.WriteLine($"{hornetLegion.Key} -> {hornetLegion.Value[givenSoldierType]}");
  60.                     }
  61.                 }
  62.             }
  63.             else if (printInput.Length == 1)
  64.             {
  65.                 string givenSoldierType = printInput[0];
  66.                 foreach (var activity in hornetActivity.OrderByDescending(x => x.Value))
  67.                 {
  68.                     if (hornetArmy[activity.Key].ContainsKey(givenSoldierType))
  69.                     {
  70.                         Console.WriteLine($"{activity.Value} : {activity.Key}");
  71.                     }
  72.                 }
  73.             }
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment