Advertisement
nikolapetkov824

P02.Judge(100/100)

Dec 7th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.84 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Linq;
  4. using System.Collections.Generic;
  5.  
  6. namespace SoftUniExamResults
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Dictionary<string, Dictionary<string, int>> contestsInfo =
  13.                 new Dictionary<string, Dictionary<string, int>>();
  14.             Dictionary<string, Dictionary<string, int>> individualStandings =
  15.                 new Dictionary<string, Dictionary<string, int>>();
  16.  
  17.             string inputLine = Console.ReadLine();
  18.  
  19.             while (inputLine != "no more time")
  20.             {
  21.                 string[] inputArr = inputLine.Split(" -> ");
  22.                 string studentName = inputArr[0];
  23.                 string contestName = inputArr[1];
  24.                 int points = int.Parse(inputArr[2]);
  25.  
  26.                 if (!contestsInfo.ContainsKey(contestName))
  27.                 {
  28.                     contestsInfo.Add(contestName, new Dictionary<string, int>());
  29.                 }
  30.  
  31.                 if (!contestsInfo[contestName].ContainsKey(studentName))
  32.                 {
  33.                     contestsInfo[contestName].Add(studentName, 0);
  34.                 }
  35.  
  36.                 if (contestsInfo[contestName][studentName] < points)
  37.                 {
  38.                     contestsInfo[contestName][studentName] = points;
  39.                 }
  40.  
  41.                 if (!individualStandings.ContainsKey(studentName))
  42.                 {
  43.                     individualStandings.Add(studentName, new Dictionary<string, int>());
  44.                 }
  45.  
  46.                 if (!individualStandings[studentName].ContainsKey(contestName))
  47.                 {
  48.                     individualStandings[studentName].Add(contestName, 0);
  49.                 }
  50.  
  51.                 if (individualStandings[studentName][contestName] < points)
  52.                 {
  53.                     individualStandings[studentName][contestName] = points;
  54.                 }
  55.  
  56.                 inputLine = Console.ReadLine();
  57.             }
  58.  
  59.             foreach (var contest in contestsInfo)
  60.             {
  61.                 Console.WriteLine($"{contest.Key}: {contest.Value.Count} participants");
  62.  
  63.                 int counter = 1;
  64.  
  65.                 foreach (var student in contest.Value.OrderByDescending(kvp => kvp.Value).ThenBy(kvp => kvp.Key))
  66.                 {
  67.                     Console.WriteLine($"{counter}. {student.Key} <::> {student.Value}");
  68.                     counter++;
  69.                 }
  70.             }
  71.  
  72.             Console.WriteLine("Individual standings:");
  73.  
  74.             int count = 1;
  75.             foreach (var student in individualStandings.OrderByDescending(kvp => kvp.Value.Values.Sum()).ThenBy(kvp => kvp.Key))
  76.             {
  77.                 Console.WriteLine($"{count}. {student.Key} -> {student.Value.Values.Sum()}");
  78.                 count++;
  79.             }
  80.         }
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement