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を防いでます。