Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _02._Judge___More_Exercise
- {
- class Program
- {
- static void Main(string[] args)
- {
- string command = "";
- //var dictStuPoint = new Dictionary<string, List<int>>();
- //var dictContenst = new Dictionary<string, string>();
- Dictionary<string, Dictionary<string, int>> contens = new Dictionary<string, Dictionary<string, int>>();
- var dictNameToTotalPoint = new Dictionary<string, int>();
- while ((command = Console.ReadLine())!= "no more time")
- {
- string[] comandArr = command.Split("->",StringSplitOptions.RemoveEmptyEntries).ToArray();
- string userName = comandArr[0];
- string contenst = comandArr[1];
- int points = int.Parse(comandArr[2]);
- if (!contens.ContainsKey(contenst))
- {
- contens.Add(contenst, new Dictionary<string, int>());
- contens[contenst].Add(userName, points);
- if (dictNameToTotalPoint.ContainsKey(userName))
- {
- dictNameToTotalPoint[userName] += points;
- }
- else
- {
- dictNameToTotalPoint.Add(userName, points);
- }
- }
- else
- {
- if (!contens[contenst].ContainsKey(userName))
- {
- contens[contenst].Add(userName, points);
- if (dictNameToTotalPoint.ContainsKey(userName))
- {
- dictNameToTotalPoint[userName] += points;
- }
- else
- {
- dictNameToTotalPoint.Add(userName, points);
- }
- }
- else
- {
- dictNameToTotalPoint[userName] += points;
- int maxVelue = int.MinValue;
- if (maxVelue<=points)
- {
- maxVelue = points;
- contens[contenst][userName] = maxVelue;
- dictNameToTotalPoint[userName] = maxVelue;
- }
- }
- }
- }
- foreach (var item in contens)
- {
- int countOne = 1;
- int numbersStu = item.Value.Count;
- Console.WriteLine($"{item.Key.Trim()}: {numbersStu} participants");
- foreach (var fistrsKVP in item.Value.OrderByDescending(x=> x.Value).ThenBy(x=>x.Key))
- {
- Console.WriteLine($"{countOne}. {fistrsKVP.Key}<::> {fistrsKVP.Value}");
- countOne++;
- }
- }
- int count = 1;
- dictNameToTotalPoint = dictNameToTotalPoint.OrderByDescending(x => x.Value).ThenBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
- Console.WriteLine($"Individual standings:");
- foreach (var item in dictNameToTotalPoint)
- {
- string name = item.Key;
- int points = item.Value;
- Console.WriteLine($"{count}. {name}-> {points}");
- count++;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement