この問題は第一回作問コンテストにて出題されました。
「短い問題文から長い回答を作らせること」が趣旨であり、出題の制約として、解法を生成可能なスクリプトの存在が前提にあることから、非自明な構築問題が強い戦略であることが分かります。
この問題は、その観点において、かなり典型寄りだったと考えています。
では解説の方に移りましょう。
問題文を最後まで読むと、途中にspreadsheetのリンクがあることに気が付きます。
要素数が10^5個あり、これは制約の上限と一致するため、これをそのまま貼り付ければACです。(提出例)
また、MojaCoderに限り、linuxコマンドを駆使することで、貼り付ける要素を最小限に留める工夫もあります。(提出例)
判定基準がある以上、何かしら命名そのものにパターンがあると考えましょう。
この際、発音可能であることが必要条件に含まれることが分かります。
あり得る子音と母音の組み合わせを、命名制約の長さの範囲内に留まるように組み合わせればACが得られます。(提出例)
確率的な解法であるため、Nが小さい場合に、100%受理されるような場合分けを差し込んでおくことが安牌です。
構築の際に、アメリカ人の命名に含まれる子音や母音のパターンを実際に把握しておく必要はありません。
受理率こそ少しばかり下がりますが、アメリカは多人種国家であるため、日系人の命名もAC判定の閾値以上に受理されると考えても問題ありません。