AtCoderのABC
次のABCの問題へ
前のABCの問題へ
ABC155-C Poll
C#のソース
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static string InputPattern = "InputX";
static List<string> GetInputList()
{
var WillReturn = new List<string>();
if (InputPattern == "Input1") {
WillReturn.Add("7");
WillReturn.Add("beat");
WillReturn.Add("vet");
WillReturn.Add("beet");
WillReturn.Add("bed");
WillReturn.Add("vet");
WillReturn.Add("bet");
WillReturn.Add("beet");
//beet
//vet
}
else if (InputPattern == "Input2") {
WillReturn.Add("8");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
WillReturn.Add("buffalo");
//buffalo
}
else if (InputPattern == "Input3") {
WillReturn.Add("7");
WillReturn.Add("bass");
WillReturn.Add("bass");
WillReturn.Add("kick");
WillReturn.Add("kick");
WillReturn.Add("bass");
WillReturn.Add("kick");
WillReturn.Add("kick");
//kick
}
else if (InputPattern == "Input4") {
WillReturn.Add("4");
WillReturn.Add("ushi");
WillReturn.Add("tapu");
WillReturn.Add("nichia");
WillReturn.Add("kun");
//kun
//nichia
//tapu
//ushi
}
else {
string wkStr;
while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
}
return WillReturn;
}
static void Main()
{
List<string> InputList = GetInputList();
string[] SArr = InputList.Skip(1).ToArray();
var CntDict = new Dictionary<string, int>();
foreach (string EachStr in SArr) {
if (CntDict.ContainsKey(EachStr)) {
CntDict[EachStr]++;
}
else {
CntDict[EachStr] = 1;
}
}
int MaxCnt = CntDict.Values.Max();
var AnswerList = new List<string>();
foreach (var EachPair in CntDict) {
if (EachPair.Value == MaxCnt) {
AnswerList.Add(EachPair.Key);
}
}
AnswerList.Sort(StringComparer.Ordinal);
AnswerList.ForEach(pX => Console.WriteLine(pX));
}
}
解説
文字列のソートでStringComparer.Ordinalを指定し、
TLEを防いでます。