Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class Program
- {
- static void Main(string[] args)
- {
- var bands = new Dictionary<string, Dictionary<string, List<string>>>();
- var input = string.Empty;
- while ((input = Console.ReadLine()) != "start of concert")
- {
- string[] tokens = input.Split("; ");
- string command = tokens[0];
- string bandName = tokens[1];
- if (!bands.ContainsKey(bandName))
- {
- bands[bandName] = new Dictionary<string, List<string>>();
- }
- if (command == "Add")
- {
- if (!bands[bandName].ContainsKey("members"))
- {
- bands[bandName]["members"] = new List<string>();
- }
- bands[bandName]["members"].AddRange(tokens[2].Split(", "));
- }
- else if (command == "Play")
- {
- if (!bands[bandName].ContainsKey("time"))
- {
- bands[bandName]["time"] = new List<string>();
- }
- bands[bandName]["time"].Add(tokens[2]);
- }
- }
- bands = bands
- .OrderByDescending(x=>x.Value["time"].Select(int.Parse).Sum())
- .ThenBy(x=>x.Key)
- .ToDictionary(x => x.Key, y => y.Value);
- var totalTime = bands.Select(x => x.Value["time"].Select(int.Parse).Sum()).Sum();
- Console.WriteLine($"Total time: {totalTime}");
- foreach (var band in bands)
- {
- var bandTime = band.Value["time"].Select(int.Parse).Sum();
- Console.WriteLine($"{band.Key} -> {bandTime}");
- }
- string bandToPlay = Console.ReadLine();
- Console.WriteLine(bandToPlay);
- foreach (var member in bands[bandToPlay]["members"].Distinct())
- {
- Console.WriteLine($"=> {member}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement