SHOW:
|
|
- or go back to the newest paste.
1 | using System; | |
2 | using System.Collections.Generic; | |
3 | using System.Linq; | |
4 | ||
5 | class Snowwhite | |
6 | { | |
7 | static void Main(string[] args) | |
8 | { | |
9 | Dictionary<string, int> dwarfs = new Dictionary<string, int>(); | |
10 | Dictionary<string, int> colors = new Dictionary<string, int>(); | |
11 | ||
12 | string line; | |
13 | while ((line = Console.ReadLine()) != "Once upon a time") | |
14 | { | |
15 | string[] tokens = line | |
16 | .Split(new[] { " <:> " }, StringSplitOptions.RemoveEmptyEntries); | |
17 | ||
18 | string dwarfName = tokens[0]; | |
19 | string dwarfHatColor = tokens[1]; | |
20 | int dwarfPhysics = int.Parse(tokens[2]); | |
21 | ||
22 | string currentDwarfId = $"{dwarfName} <:> {dwarfHatColor}"; | |
23 | ||
24 | if (dwarfs.ContainsKey(currentDwarfId) == false) | |
25 | { | |
26 | dwarfs.Add(currentDwarfId, dwarfPhysics); | |
27 | ||
28 | if (colors.ContainsKey(dwarfHatColor) == false) | |
29 | { | |
30 | colors.Add(dwarfHatColor, 1); | |
31 | } | |
32 | else | |
33 | { | |
34 | colors[dwarfHatColor]++; | |
35 | } | |
36 | } | |
37 | else | |
38 | { | |
39 | int oldValue = dwarfs[currentDwarfId]; | |
40 | if (dwarfPhysics > oldValue) | |
41 | { | |
42 | dwarfs[currentDwarfId] = dwarfPhysics; | |
43 | } | |
44 | } | |
45 | } | |
46 | ||
47 | Dictionary<string, int> sortedDwarfs = dwarfs | |
48 | .OrderByDescending(d => d.Value) | |
49 | .ThenByDescending(d => colors[d.Key.Split(new[] { " <:> " }, StringSplitOptions.RemoveEmptyEntries)[1]]) | |
50 | .ToDictionary(x => x.Key, x => x.Value); | |
51 | ||
52 | foreach (var dwarf in sortedDwarfs) | |
53 | { | |
54 | string dwarfId = dwarf.Key; | |
55 | string[] dwarfIdTokens = dwarfId.Split(new[] { " <:> " }, StringSplitOptions.RemoveEmptyEntries); | |
56 | ||
57 | string dwarfName = dwarfIdTokens[0]; | |
58 | string dwarfHatColor = dwarfIdTokens[1]; | |
59 | ||
60 | int dwarfPhsyics = dwarf.Value; | |
61 | ||
62 | Console.WriteLine($"({dwarfHatColor}) {dwarfName} <-> {dwarfPhsyics}"); | |
63 | } | |
64 | } | |
65 | } |