Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _04.Trainlands
- {
- public class StartUp
- {
- public static void Main()
- {
- Dictionary<string, Dictionary<string, long>> trains = new Dictionary<string, Dictionary<string, long>>();
- while (true)
- {
- string input = Console.ReadLine();
- var commandArgs = input
- .Split(new char[] { '-', '>', ':', ' ', '=' }, StringSplitOptions.RemoveEmptyEntries)
- .ToArray();
- string trainName = commandArgs[0];
- if (input == "It's Training Men!")
- {
- break;
- }
- if (commandArgs.Length == 3)
- {
- string wagonName = commandArgs[1];
- long wagonPower = long.Parse(commandArgs[2]);
- if (!trains.ContainsKey(trainName))
- {
- trains.Add(trainName, new Dictionary<string, long>());
- }
- trains[trainName].Add(wagonName, wagonPower);
- }
- else
- {
- if (input.Contains("="))
- {
- string otherTrain = commandArgs[1];
- if (!trains.ContainsKey(trainName))
- {
- trains.Add(trainName, new Dictionary<string, long>());
- }
- trains[trainName].Clear();
- foreach (var train in trains[otherTrain])
- {
- trains[trainName].Add(train.Key, train.Value);
- }
- }
- else
- {
- string otherTrain = commandArgs[1];
- if (!trains.ContainsKey(trainName))
- {
- trains.Add(trainName, new Dictionary<string, long>());
- }
- foreach (var train in trains[otherTrain])
- {
- trains[trainName].Add(train.Key, train.Value);
- }
- trains.Remove(otherTrain);
- }
- }
- }
- foreach (var train in trains.OrderByDescending(x => x.Value.Values.Sum()).ThenBy(y => y.Value.Count))
- {
- Console.WriteLine($"Train: {train.Key}");
- foreach (var wagon in train.Value.OrderByDescending(x => x.Value))
- {
- Console.WriteLine($"###{wagon.Key} - {wagon.Value}");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment