Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- namespace _04IronGirder
- {
- class Program
- {
- static void Main(string[] args)
- {
- Dictionary<string, int> townTime = new Dictionary<string, int>();
- Dictionary<string, int> townPass = new Dictionary<string, int>();
- while (true)
- {
- string line = Console.ReadLine();
- if (line == "Slide rule")
- {
- break;
- }
- if (!line.Contains("ambush"))
- {
- //string[] tokens = line.Replace("->", "+").Split(new char[] { ':', '+' });
- string[] tokens = line.Split(new string[] { ":", "->" }, StringSplitOptions.None);
- string townName = tokens[0];
- int time = int.Parse(tokens[1]);
- int passangers = int.Parse(tokens[2]);
- if (!townTime.ContainsKey(townName))
- {
- townTime.Add(townName, time);
- townPass.Add(townName, passangers);
- }
- else
- {
- townPass[townName] += passangers;
- if (time < townTime[townName] || townTime[townName]==0)
- {
- townTime[townName] = time;
- }
- }
- }
- else
- {
- string[] tokens = line.Split(":ambush->");
- string townName = tokens[0];
- int passangers =int.Parse(tokens[1]);
- if (townPass.ContainsKey(townName) && townTime.ContainsKey(townName))
- {
- townTime[townName] = 0;
- townPass[townName] -= passangers;
- }
- }
- }
- var townTimeSorted=townTime.Where(x => x.Value > 0);
- var townPassSorted=townPass.Where(x => x.Value > 0);
- foreach (var kvp in townTimeSorted.OrderBy(x=>x.Value).ThenBy(x=>x.Key))
- {
- string townName = kvp.Key;
- int time = kvp.Value;
- int passangers = townPass[townName];
- //if (townPass[townName]==0 || townTime[townName]==0)
- //{
- // continue;
- //}
- Console.WriteLine($"{townName} -> Time: {time} -> Passengers: {passangers}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement