Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace First
- {
- class Program
- {
- static void Main()
- {
- Dictionary<string, Dictionary<string, int>> Venues = new Dictionary<string, Dictionary<string, int>>();
- while (true)
- {
- string input = Console.ReadLine();
- if (input == "End")
- break;
- bool isCorrect = CheckIfInputIsValid(input);
- if (isCorrect == true)
- {
- string name;
- string venue;
- int ticketPrize;
- int ticketCount;
- name = input.Substring(0, input.IndexOf("@") - 1);
- int indexOfNumber = -1;
- for (int i = 0; i < input.Length; i++)
- {
- if ((int)input[i] >= 48 && (int)input[i] <= 57)
- {
- indexOfNumber = i;
- break;
- }
- }
- venue = input.Substring(name.Length + 2, indexOfNumber - (name.Length + 2) - 1);
- int indexOfSpace = input.IndexOf(' ', indexOfNumber);
- ticketPrize = int.Parse(input.Substring(indexOfNumber, indexOfSpace - indexOfNumber));
- ticketCount = int.Parse(input.Substring(indexOfSpace, input.Length - indexOfSpace));
- int moneyMade = ticketCount * ticketPrize;
- if (Venues.ContainsKey(venue))
- {
- if (Venues[venue].ContainsKey(name))
- {
- Venues[venue][name] += ticketPrize * ticketCount;
- }
- else
- {
- Venues[venue].Add(name, moneyMade);
- }
- }
- else
- {
- Venues.Add(venue, new Dictionary<string, int>());
- Venues[venue].Add(name, moneyMade);
- }
- }
- }
- foreach (var venue in Venues)
- {
- Console.WriteLine(venue.Key);
- foreach (var name in venue.Value.OrderByDescending(x=>x.Value))
- {
- Console.WriteLine("# {0} -> {1}",name.Key,name.Value);
- }
- }
- }
- static bool CheckIfInputIsValid(string input)
- {
- int indexOfAt = input.IndexOf("@");
- if (input[indexOfAt - 1] != ' ')
- return false;
- int indexOfSpace = input.IndexOf(' ', indexOfAt);
- if ((int)input[indexOfSpace - 1] >= 48 && (int)input[indexOfSpace - 1] <= 57)
- return false;
- int LastNumberExist = input.IndexOf(' ', indexOfSpace + 1);
- if (LastNumberExist == -1)
- return false;
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement