Advertisement
Guest User

Untitled

a guest
May 24th, 2017
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.22 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. using System.Text.RegularExpressions;
  7. using System.Numerics;
  8.  
  9. namespace LegendaryFarming
  10. {
  11.     class Program
  12.     {
  13.         static void Main(string[] args)
  14.         {
  15.             string input = Console.ReadLine();
  16.  
  17.             var regex = new Regex(@"([A-Z][a-z]+\s|[A-Z][a-z]+\s[A-Z][a-z]+\s)@\D+\s\d+\s\d+");
  18.             var result = regex.IsMatch(input);
  19.  
  20.             Dictionary<string, Dictionary<string, BigInteger>> performancies = new Dictionary<string, Dictionary<string, BigInteger>>();
  21.  
  22.  
  23.             while (input!= "End")
  24.             {
  25.                 if (result==true)
  26.                 {
  27.                     var regexSinger = new Regex(@"([A-Z][a-z]+\s|[A-Z][a-z]+\s[A-Z][a-z]+\s)@");
  28.                     var singesr = regexSinger.Match(input);
  29.                     string singer = singesr.Value.ToString().TrimEnd('@').Trim();
  30.  
  31.  
  32.                     var regexTickets = new Regex(@"\s\d+\s");
  33.                     var price=  regexTickets.Match(input);
  34.                     BigInteger ticketsPrice = BigInteger.Parse(price.Value.ToString().Trim());
  35.  
  36.  
  37.                     var regexTicketsCount = new Regex(@"\s\d+$");
  38.                     var count = regexTicketsCount.Match(input);
  39.                     BigInteger ticketsCount = BigInteger.Parse(count.Value.ToString().Trim());
  40.  
  41.                     var regexVenue = new Regex(@"@[A-Z][a-z]+\D+");
  42.                     var ve = regexVenue.Match(input);
  43.                     string venue = ve.Value.ToString().TrimStart('@').Trim();
  44.  
  45.  
  46.  
  47.                     if (!performancies.ContainsKey(venue))
  48.                     {
  49.                         performancies[venue] = new Dictionary<string, BigInteger>();
  50.  
  51.                         if (!performancies[venue].ContainsKey(singer))
  52.                         {
  53.                             performancies[venue][singer] = ticketsCount * ticketsPrice;
  54.                         }
  55.                         else
  56.                         {
  57.                             performancies[venue][singer] += ticketsCount * ticketsPrice;
  58.                         }
  59.                     }
  60.                     else
  61.                     {
  62.                         if (!performancies[venue].ContainsKey(singer))
  63.                         {
  64.                             performancies[venue][singer] = ticketsCount * ticketsPrice;
  65.                         }
  66.                         else
  67.                         {
  68.                             performancies[venue][singer] += ticketsCount * ticketsPrice;
  69.                         }
  70.                     }
  71.                 }
  72.  
  73.                 input = Console.ReadLine();
  74.                 regex = new Regex(@"([A-Z][a-z]+\s|[A-Z][a-z]+\s[A-Z][a-z]+\s)@\D+\s\d+\s\d+");
  75.                 result = regex.IsMatch(input);
  76.             }
  77.  
  78.             foreach (var item in performancies)
  79.             {
  80.                 Console.WriteLine($"{item.Key}");
  81.  
  82.                 foreach (var singerANdMoney in item.Value.OrderByDescending(x=>x.Value))
  83.                 {
  84.                     Console.WriteLine($"#  {singerANdMoney.Key} -> {singerANdMoney.Value}");
  85.                 }
  86.             }
  87.         }
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement