Advertisement
Guest User

Untitled

a guest
Jul 19th, 2020
681
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.54 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5.  
  6. namespace _02._Judge
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             var contests = new Dictionary<string, Dictionary<string, int>>();
  13.             var individualStatistics = new SortedDictionary<string, Dictionary<string, int>>();
  14.  
  15.             string input = string.Empty;
  16.  
  17.             while ((input = Console.ReadLine()) != "no more time")
  18.             {
  19.                 string name = input.Split(" -> ")[0].ToString();
  20.                 string contest = input.Split(" -> ")[1].ToString();
  21.                 int point = int.Parse(input.Split(" -> ")[2].ToString());
  22.  
  23.                 if(contests.ContainsKey(contest))
  24.                 {
  25.                     if(contests[contest].ContainsKey(name))
  26.                     {
  27.                         if(contests[contest][name] < point)
  28.                         {
  29.                             contests[contest][name] = point;
  30.                         }  
  31.                     }
  32.                     else
  33.                     {
  34.                         contests[contest].Add(name, point);
  35.                     }
  36.                 }
  37.                 else
  38.                 {
  39.                     contests.Add(contest, new Dictionary<string, int>());
  40.                     contests[contest].Add(name, point);
  41.                 }
  42.  
  43.                 if (individualStatistics.ContainsKey(name))
  44.                 {
  45.                     if (individualStatistics[name].ContainsKey(contest))
  46.                     {
  47.                         if (individualStatistics[name][contest] < point)
  48.                         {
  49.                             individualStatistics[name][contest] = point;
  50.                         }
  51.                     }
  52.                     else
  53.                     {
  54.                         individualStatistics[name].Add(contest, point);
  55.                     }
  56.                 }
  57.                 else
  58.                 {
  59.                     individualStatistics.Add(name, new Dictionary<string, int>());
  60.                     individualStatistics[name].Add(contest, point);
  61.                 }
  62.  
  63.             }
  64.  
  65.             contests = contests.OrderByDescending(x => x.Value.Count).ThenBy(x => x.Key).ToDictionary(a => a.Key, b => b.Value);
  66.             int position = 1;
  67.  
  68.             foreach (var item in contests)
  69.             {
  70.                 position = 1;
  71.                 Console.WriteLine($"{item.Key}: {item.Value.Count} participants");
  72.                 foreach (var items in item.Value.OrderByDescending(x => x.Value))
  73.                 {
  74.                     Console.WriteLine($"{position}. {items.Key} <::> {items.Value}");
  75.                     position++;
  76.                 }
  77.             }
  78.  
  79.             var filterIndivDic = new Dictionary<string, int>();
  80.             int sum = 0;
  81.             foreach (var item in individualStatistics)
  82.             {
  83.                 foreach (var items in item.Value)
  84.                 {
  85.                     sum += items.Value;
  86.                 }
  87.                 filterIndivDic.Add(item.Key, sum);
  88.                 sum = 0;
  89.             }
  90.  
  91.             filterIndivDic = filterIndivDic.OrderByDescending(x => x.Value).ThenBy(x => x.Key).ToDictionary(a => a.Key, b => b.Value);
  92.  
  93.             position = 1;
  94.             Console.WriteLine("Individual standings:");
  95.             foreach (var item in filterIndivDic)
  96.             {
  97.                 Console.WriteLine($"{position}. {item.Key} -> {item.Value}");
  98.                 position++;
  99.             }
  100.         }
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement