Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- public class HornetArmada
- {
- public static void Main()
- {
- //STORAGE
- Dictionary<string, Activity> activities = new Dictionary<string, Activity>();
- // GET ALL INPUT AND SAVE TO STORAGE
- int inputCount = int.Parse(Console.ReadLine());
- for (int i = 0; i < inputCount; i++)
- {
- string[] input = Console.ReadLine().Split(new[] { ' ', '=', '-', '>', ':' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
- string regionName = input[1];
- if (activities.ContainsKey(regionName))
- {
- activities[regionName].ActNumber.Add(int.Parse(input[0]));
- activities[regionName].RegionName = regionName;
- activities[regionName].SoldierTypes.Add(input[2]);
- activities[regionName].SoldierCount += long.Parse(input[3]);
- }
- else
- {
- Activity act = new Activity();
- act.ActNumber.Add(long.Parse(input[0]));
- act.RegionName = regionName;
- act.SoldierTypes.Add(input[2]);
- act.SoldierCount += long.Parse(input[3]);
- activities.Add(regionName,act);
- }
- }
- string[] lastInput = Console.ReadLine().Split('\\');
- //MAIN LOGIC
- if (lastInput.Length == 1)
- {
- var a = activities.Where(x => x.Value.SoldierTypes.Contains(lastInput[0].Trim()));
- Dictionary<string, long> additionalVariableForPrintingResult = new Dictionary<string, long>();
- foreach (var item in a)
- {
- additionalVariableForPrintingResult.Add(item.Key,item.Value.ActNumber.Max());
- }
- //PRINT TO CONSOLE
- foreach (var item in additionalVariableForPrintingResult.OrderByDescending(x=>x.Value))
- {
- Console.WriteLine($"{item.Value} : {item.Key}");
- }
- }
- }
- }
- public class Activity
- {
- public List<long> ActNumber = new List<long>();
- public string RegionName { get; set; }
- public List<string> SoldierTypes = new List<string>();
- public long SoldierCount { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement