Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace SrabskoUnleashed
- {
- class Program
- {
- static void Main(string[] args)
- {
- Dictionary<string, Dictionary<string, long>> singersDict = new Dictionary<string, Dictionary<string, long>>();
- string inputLine = Console.ReadLine();
- while (!inputLine.ToLower().Contains("end"))
- {
- string[] inputArgs = inputLine.Split('@').ToArray();
- bool isInputValid = CheckInput(inputArgs);
- if (!isInputValid)
- {
- inputLine = Console.ReadLine();
- continue;
- }
- string[] concertArgs = GetConcertArgs(inputArgs);
- string singerName = concertArgs[0];
- string venue = concertArgs[1];
- int ticketsPrice = int.Parse(concertArgs[2]);
- int ticketsCount = int.Parse(concertArgs[3]);
- long totalProfit = ticketsCount * ticketsPrice;
- if (!singersDict.ContainsKey(venue))
- {
- singersDict.Add(venue, new Dictionary<string, long>());
- }
- if (!singersDict[venue].ContainsKey(singerName))
- {
- singersDict[venue].Add(singerName, 0);
- }
- singersDict[venue][singerName] += totalProfit;
- inputLine = Console.ReadLine();
- }
- PrintOutput(singersDict);
- }
- static void PrintOutput(Dictionary<string, Dictionary<string, long>> singersDict)
- {
- foreach (var venue in singersDict.Keys)
- {
- Console.WriteLine(venue);
- foreach (var singer in singersDict[venue].OrderByDescending(x => x.Value))
- {
- Console.WriteLine($"# {singer.Key} -> {singer.Value}");
- }
- }
- }
- private static string[] GetConcertArgs(string[] inputArgs)
- {
- string singerName = inputArgs[0].Trim();
- string[] tempArray = inputArgs[1].Split().ToArray();
- int ticketsCount = int.Parse(tempArray[tempArray.Length - 1]);
- int ticketsPrice = int.Parse(tempArray[tempArray.Length - 2]);
- string venue = string.Empty;
- for (int i = 0; i < tempArray.Length - 2; i++)
- {
- if (i == tempArray.Length - 3)
- {
- venue += tempArray[i];
- continue;
- }
- venue += tempArray[i] + " ";
- }
- string[] concertArgs = new string[4];
- concertArgs[0] = singerName;
- concertArgs[1] = venue;
- concertArgs[2] = ticketsPrice.ToString();
- concertArgs[3] = ticketsCount.ToString();
- return concertArgs;
- }
- static bool CheckInput(string[] inputArgs)
- {
- string singerName = inputArgs[0];
- string[] otherArgs = inputArgs[1].Split(' ').ToArray();
- if (singerName.EndsWith(" ") && otherArgs.Length >= 3)
- {
- return true;
- }
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement