vandeva

Snowwhite

Jul 19th, 2019
717
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.88 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Snowwhite
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string input = Console.ReadLine();
  12.  
  13.             var dwarfs = new Dictionary<string, Dictionary<string, long>>();
  14.             while (input != "Once upon a time")
  15.             {
  16.                 string[] data = input.Split(" <:> ");
  17.  
  18.                 string name = data[0];
  19.                 string color = data[1];
  20.                 long physisc = long.Parse(data[2]);
  21.  
  22.                 if (!dwarfs.ContainsKey(color))
  23.                 {
  24.                     dwarfs.Add(color, new Dictionary<string, long>());
  25.                     dwarfs[color].Add(name, physisc);
  26.                 }
  27.                 else
  28.                 {
  29.                     if (dwarfs[color].ContainsKey(name))
  30.                     {
  31.                         if (dwarfs[color][name] < physisc)
  32.                         {
  33.                             dwarfs[color][name] = physisc;
  34.                         }
  35.                     }
  36.                     else
  37.                     {
  38.                         dwarfs[color].Add(name, physisc);
  39.                     }
  40.                 }
  41.                 input = Console.ReadLine();
  42.             }
  43.  
  44.             var newDwarfs = new Dictionary<string, long>();
  45.  
  46.             foreach (var dwarf in dwarfs.OrderByDescending(x => x.Value.Count()))
  47.             {
  48.                 foreach (var name in dwarf.Value)
  49.                 {
  50.                     string newDwarfsKey = $"({dwarf.Key}) {name.Key}";
  51.                     newDwarfs.Add(newDwarfsKey, name.Value);
  52.                 }
  53.             }
  54.  
  55.             var sortedNewDwarfs = newDwarfs.OrderByDescending(x => x.Value);
  56.  
  57.             Console.WriteLine(string.Join(Environment.NewLine, sortedNewDwarfs.Select(x => $"{x.Key} <-> {x.Value}")));
  58.         }
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment