Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- namespace _03MOBAChallenger
- {
- class Program
- {
- static void Main(string[] args)
- {
- Dictionary<string, Dictionary<string, int>> playerPositionSkill = new Dictionary<string, Dictionary<string, int>>();
- while (true)
- {
- string command = Console.ReadLine();
- if (command == "Season end")
- {
- break;
- }
- if (command.Contains("->"))
- {
- string[] tokens = command.Split(" -> ");
- string player = tokens[0];
- string position = tokens[1];
- int skill = int.Parse(tokens[2]);
- if (!playerPositionSkill.ContainsKey(player))
- {
- playerPositionSkill.Add(player, new Dictionary<string, int>());
- playerPositionSkill[player].Add(position, skill);
- }
- else if (playerPositionSkill.ContainsKey(player)==true && playerPositionSkill[player].ContainsKey(position)==false)
- {
- playerPositionSkill[player].Add(position, skill);
- }
- else if (playerPositionSkill.ContainsKey(player) && playerPositionSkill[player].ContainsKey(position))
- {
- if (playerPositionSkill[player][position]<skill)
- {
- playerPositionSkill[player][position] = skill;
- }
- }
- }
- else
- {
- string[] tokens = command.Split(" vs ");
- string player1 = tokens[0];
- string player2 = tokens[1];
- if (playerPositionSkill.ContainsKey(player1) && playerPositionSkill.ContainsKey(player2))
- {
- string[] player1Positions = playerPositionSkill[player1].Keys.ToArray();
- foreach (var player2Positions in playerPositionSkill[player2].Keys)
- {
- if (player1Positions.Contains(player2Positions))
- {
- int totalSkillPointsPlayer1 = playerPositionSkill[player1].Values.Sum();
- int totalSkillPointsPlayer2 = playerPositionSkill[player2].Values.Sum();
- if (totalSkillPointsPlayer1>totalSkillPointsPlayer2)
- {
- playerPositionSkill.Remove(player2);
- break;
- }
- else if (totalSkillPointsPlayer1 < totalSkillPointsPlayer2)
- {
- playerPositionSkill.Remove(player1);
- break;
- }
- }
- }
- }
- }
- }
- foreach (var kvp in playerPositionSkill.OrderByDescending(x=>x.Value.Values.Sum()).ThenBy(x=>x.Key))
- {
- string player = kvp.Key;
- int totalSkill = kvp.Value.Values.Sum();
- Console.WriteLine($"{player}: {totalSkill} skill");
- foreach (var kvpValue in kvp.Value.OrderByDescending(y=>y.Value).ThenBy(y=>y.Key))
- {
- string position = kvpValue.Key;
- int skill = kvpValue.Value;
- Console.WriteLine($"- {position} <::> {skill}");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement