Advertisement
Guest User

Сръбско-Unleashed-70/100

a guest
Oct 9th, 2016
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.16 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Сръбско_Unleashed
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Dictionary<string, Dictionary<string, long>> cityProfit = new Dictionary<string, Dictionary<string, long>>();
  14.            
  15.             string[] singerInfo = Console.ReadLine().Split('@').ToArray();
  16.  
  17.             while (!singerInfo[0].Equals("End"))
  18.             {
  19.                 string[] singerArr = singerInfo[0].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
  20.                 string[] city = singerInfo[1].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
  21.                 string singer = string.Join(" ", singerArr);
  22.  
  23.                 for (int i = 0; i < city.Length; i++)
  24.                 {
  25.                     try
  26.                     {
  27.                         long profit = GetProfit(city[i], city[i + 1]);
  28.  
  29.                         List<string> cityName = new List<string>();
  30.                         for (int j = 0; j < i; j++)
  31.                         {
  32.                             cityName.Add(city[j]);
  33.                         }
  34.  
  35.                         string newCity = string.Join(" ", cityName);
  36.  
  37.                         InsertCity(cityProfit, newCity);
  38.                         InsertProfit(cityProfit, newCity, singer, profit);
  39.  
  40.                         break;
  41.                     }
  42.                     catch (Exception)
  43.                     {
  44.                     }
  45.                 }
  46.                 singerInfo = Console.ReadLine().Split('@').ToArray();
  47.             }
  48.  
  49.             PrintProfit(cityProfit);
  50.  
  51.         }
  52.  
  53.         private static void PrintProfit(Dictionary<string, Dictionary<string, long>> cityProfit)
  54.         {
  55.             foreach (KeyValuePair<string, Dictionary<string, long>> cityEntry in cityProfit)
  56.             {
  57.                 Console.WriteLine(cityEntry.Key);
  58.  
  59.                 foreach (KeyValuePair<string, long> singerProfit in cityEntry.Value.OrderByDescending(x => x.Value))
  60.                 {
  61.                     Console.WriteLine($"#  {singerProfit.Key} -> {singerProfit.Value}");
  62.                 }
  63.             }
  64.         }
  65.  
  66.         private static long GetProfit(string v1, string v2)
  67.         {
  68.             long ticketPrice = long.Parse(v1);
  69.             long ticketsCount = long.Parse(v2);
  70.             long profit = ticketPrice * ticketsCount;
  71.             return profit;
  72.         }
  73.  
  74.         private static void InsertProfit(Dictionary<string, Dictionary<string, long>> cityProfit, string newCity, string singer, long profit)
  75.         {
  76.             if (!cityProfit[newCity].ContainsKey(singer))
  77.             {
  78.                 cityProfit[newCity].Add(singer, 0);
  79.             }
  80.             cityProfit[newCity][singer] += profit;
  81.         }
  82.  
  83.         private static void InsertCity(Dictionary<string, Dictionary<string, long>> cityProfit, string newCity)
  84.         {
  85.             if (!cityProfit.ContainsKey(newCity))
  86.             {
  87.                 cityProfit.Add(newCity, new Dictionary<string, long>());
  88.             }
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement