Advertisement
GeorgiVelev4

Srbsko Unleashed

Jun 25th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.49 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.RegularExpressions;
  5.  
  6. namespace RegexLab1862018
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Dictionary<string, Dictionary<string, long>> venueSingerMoney = new Dictionary<string, Dictionary<string, long>>();
  13.             while (true)
  14.             {
  15.                 string command = Console.ReadLine();
  16.                 if (command == "End")
  17.                 {
  18.                     break;
  19.  
  20.                 }
  21.                 string[] elements = command.Split("@").ToArray();
  22.                 string singer = elements[0].Trim();
  23.                 var splitedElements1 = elements[1].Trim().Split(' ').ToArray();
  24.                 string[] venueArray = splitedElements1.Take(splitedElements1.Length - 2).ToArray();
  25.                 bool isValidInput = command.Split(' ').ToArray().Length >= 4 && venueArray.Length <= 3;
  26.                 if (isValidInput)
  27.                 {
  28.                     string venueAsStr = string.Join(' ', venueArray);
  29.                     string[] ticketPriceAsArray = splitedElements1.Skip(venueArray.Length).Take(1).ToArray();
  30.                     string ticketPriceAsStr = string.Join("", ticketPriceAsArray);
  31.                     int ticketPrice = int.Parse(ticketPriceAsStr);
  32.                     string[] ticketCountAsArray = splitedElements1.Skip(venueArray.Length + 1).Take(1).ToArray();
  33.                     string ticketCountAsStr = string.Join("", ticketCountAsArray);
  34.                     int ticketCount = int.Parse(ticketCountAsStr);
  35.                     if (!venueSingerMoney.ContainsKey(venueAsStr))
  36.                     {
  37.                         venueSingerMoney.Add(venueAsStr, new Dictionary<string, long>());
  38.                     }
  39.                     if (!venueSingerMoney[venueAsStr].ContainsKey(singer))
  40.                     {
  41.                         venueSingerMoney[venueAsStr].Add(singer, 0);
  42.                     }
  43.                     venueSingerMoney[venueAsStr][singer] += ticketCount * ticketPrice;
  44.                 }
  45.             }
  46.             foreach (var venueSingerMoneyKVP in venueSingerMoney)
  47.             {
  48.                 Console.WriteLine($"{venueSingerMoneyKVP.Key}");
  49.                 foreach (var nestedKVP in venueSingerMoney[venueSingerMoneyKVP.Key].OrderByDescending(x=>x.Value))
  50.                 {
  51.                     Console.WriteLine($"#  {nestedKVP.Key} -> {nestedKVP.Value}");
  52.                 }
  53.             }
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement