Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.18 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 First
  8. {
  9.     class Program
  10.     {
  11.         static void Main()
  12.         {
  13.             Dictionary<string, Dictionary<string, int>> Venues = new Dictionary<string, Dictionary<string, int>>();
  14.  
  15.             while (true)
  16.             {
  17.                 string input = Console.ReadLine();
  18.  
  19.                 if (input == "End")
  20.                     break;
  21.  
  22.                 bool isCorrect = CheckIfInputIsValid(input);
  23.  
  24.                 if (isCorrect == true)
  25.                 {
  26.                     string name;
  27.                     string venue;
  28.                     int ticketPrize;
  29.                     int ticketCount;
  30.  
  31.                     name = input.Substring(0, input.IndexOf("@") - 1);
  32.  
  33.                     int indexOfNumber = -1;
  34.                     for (int i = 0; i < input.Length; i++)
  35.                     {
  36.                         if ((int)input[i] >= 48 && (int)input[i] <= 57)
  37.                         {
  38.                             indexOfNumber = i;
  39.                             break;
  40.                         }
  41.                     }
  42.  
  43.                     venue = input.Substring(name.Length + 2, indexOfNumber - (name.Length + 2) - 1);
  44.  
  45.                     int indexOfSpace = input.IndexOf(' ', indexOfNumber);
  46.  
  47.                     ticketPrize = int.Parse(input.Substring(indexOfNumber, indexOfSpace - indexOfNumber));
  48.  
  49.                     ticketCount = int.Parse(input.Substring(indexOfSpace, input.Length - indexOfSpace));
  50.  
  51.                     int moneyMade = ticketCount * ticketPrize;
  52.  
  53.                     if (Venues.ContainsKey(venue))
  54.                     {
  55.                         if (Venues[venue].ContainsKey(name))
  56.                         {
  57.                             Venues[venue][name] += ticketPrize * ticketCount;
  58.                         }
  59.                         else
  60.                         {
  61.                             Venues[venue].Add(name, moneyMade);
  62.                         }
  63.                     }
  64.                     else
  65.                     {
  66.                         Venues.Add(venue, new Dictionary<string, int>());
  67.                         Venues[venue].Add(name, moneyMade);
  68.                     }
  69.                 }
  70.             }
  71.  
  72.             foreach (var venue in Venues)
  73.             {
  74.                 Console.WriteLine(venue.Key);
  75.                 foreach (var name in venue.Value.OrderByDescending(x=>x.Value))
  76.                 {
  77.                     Console.WriteLine("# {0} -> {1}",name.Key,name.Value);
  78.                 }
  79.             }
  80.         }
  81.  
  82.         static bool CheckIfInputIsValid(string input)
  83.         {
  84.             int indexOfAt = input.IndexOf("@");
  85.  
  86.             if (input[indexOfAt - 1] != ' ')
  87.                 return false;
  88.  
  89.             int indexOfSpace = input.IndexOf(' ', indexOfAt);
  90.  
  91.             if ((int)input[indexOfSpace - 1] >= 48 && (int)input[indexOfSpace - 1] <= 57)
  92.                 return false;
  93.  
  94.             int LastNumberExist = input.IndexOf(' ', indexOfSpace + 1);
  95.  
  96.             if (LastNumberExist == -1)
  97.                 return false;
  98.  
  99.             return true;
  100.         }
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement