Advertisement
Guest User

Untitled

a guest
Jun 20th, 2017
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.36 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. class Program
  6. {
  7.     static void Main()
  8.     {
  9.         Dictionary<string, Dictionary<string, int>> venuesSingersEarnings = new Dictionary<string, Dictionary<string, int>>();
  10.         while (true)
  11.         {
  12.             string input = Console.ReadLine();
  13.             if (input == "End")
  14.             {
  15.                 break;
  16.             }
  17.             if (input.Contains(" @") == false)
  18.             {
  19.                 continue;
  20.             }
  21.             string singerName = input.Substring(0, input.IndexOf(" @"));
  22.             string[] splitInput = input.Substring(input.IndexOf("@") + 1).Split();
  23.             if (splitInput.Length < 3 || splitInput.Length > 4)
  24.             {
  25.                 continue;
  26.             }
  27.             string place = splitInput[0];
  28.             if (splitInput.Length == 4)
  29.             {
  30.                 place += " " + splitInput[1];
  31.                 splitInput = splitInput.Skip(2).ToArray();
  32.             }
  33.             else
  34.             {
  35.                 splitInput = splitInput.Skip(1).ToArray();
  36.             }
  37.             int ticketPrice = 0;
  38.             int ticketCount = 0;
  39.             if (!int.TryParse(splitInput[0], out ticketPrice))
  40.             {
  41.                 continue;
  42.             }
  43.             if (!int.TryParse(splitInput[1], out ticketCount))
  44.             {
  45.                 continue;
  46.             }
  47.             int totalEarning = ticketCount * ticketPrice;
  48.             if (!venuesSingersEarnings.ContainsKey(place))
  49.             {
  50.                 venuesSingersEarnings[place] = new Dictionary<string, int>();
  51.             }
  52.             if (venuesSingersEarnings[place].ContainsKey(singerName))
  53.             {
  54.                 venuesSingersEarnings[place][singerName] += totalEarning;
  55.             }
  56.             else
  57.             {
  58.                 venuesSingersEarnings[place][singerName] = totalEarning;
  59.             }
  60.         }
  61.         foreach (KeyValuePair<string, Dictionary<string, int>> venueSingerEarning in venuesSingersEarnings)
  62.         {
  63.             Console.WriteLine($"{venueSingerEarning.Key}");
  64.             foreach (KeyValuePair<string, int> singerEarning in venueSingerEarning.Value.OrderBy(kvp => -kvp.Value))
  65.             {
  66.                 Console.WriteLine($"#  {singerEarning.Key} -> {singerEarning.Value}");
  67.             }
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement