using System;
public class Test
{
public static void Main()
{
int[] nums = { 2, 3, 2, 5, 5, 5 };
FindSumMostAppear(nums);
}
public static int[] FindSumMostAppear(int[] nums){
var f = new Dictionary<int, int>();
int maxAppear = 0;
foreach(var num in nums){
if(f.TryGetValue(num, out int count)){
f[num] = count + 1;
}
else{
f.Add(num, 1);
}
}
foreach(var e in f){
if(e.Value > maxAppear){
maxAppear = e.Value;
}
}
var sum = new List<int>();
foreach(var e in f){
if(e.Value == maxAppear){
sum.Add(e.Value * e.Key);
}
}
return sum.ToArray();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCWludFtdIG51bXMgPSB7IDIsIDMsIDIsIDUsIDUsIDUgfTsKCQlGaW5kU3VtTW9zdEFwcGVhcihudW1zKTsKCX0KCQoJcHVibGljIHN0YXRpYyBpbnRbXSBGaW5kU3VtTW9zdEFwcGVhcihpbnRbXSBudW1zKXsKCQkJdmFyIGYgPSBuZXcgRGljdGlvbmFyeTxpbnQsIGludD4oKTsKCQkJaW50IG1heEFwcGVhciA9IDA7CgoJCQlmb3JlYWNoKHZhciBudW0gaW4gbnVtcyl7CgkJCQlpZihmLlRyeUdldFZhbHVlKG51bSwgb3V0IGludCBjb3VudCkpewoJCQkJCWZbbnVtXSA9IGNvdW50ICsgMTsKCQkJCX0KCQkJCWVsc2V7CgkJCQkJZi5BZGQobnVtLCAxKTsKCQkJCX0KCQkJfQoJCQkKCQkJZm9yZWFjaCh2YXIgZSBpbiBmKXsKCQkJCWlmKGUuVmFsdWUgPiBtYXhBcHBlYXIpewoJCQkJCW1heEFwcGVhciA9IGUuVmFsdWU7CgkJCQkJfQoJCQl9CgkJCXZhciBzdW0gPSBuZXcgTGlzdDxpbnQ+KCk7CgkJCWZvcmVhY2godmFyIGUgaW4gZil7CgkJCQlpZihlLlZhbHVlID09IG1heEFwcGVhcil7CgkJCQkJc3VtLkFkZChlLlZhbHVlICogZS5LZXkpOwoJCQkJfQoJCQkJfQoJCQkKCQkJcmV0dXJuIHN1bS5Ub0FycmF5KCk7CgkJfQp9Cg==