301)2023年5月14日ABC301です!今回は文字列操作やカウントを駆使することでACにつながる問題が多い印象でした。online.問題概略この問題では、高橋くんと青木くんがN回の試合を行い、その結果が文字列Sで与えられます。数をカウントし、多い方を勝者とします。同数の場合は先にその数に達した方が勝者とします。目的は、総合勝者が高橋くんか青木くんかを判定することです。アプローチこの問題は文字列の解析とカウントを主とした問題です。その数が多い方を勝者とします。数が同じ場合、先にその数に達した方が勝者となります。最初にその数を達成したかを見ることで判定できます。数をそれぞれカウントします。次に、それらの数が同じか、それともどちらかが多いかによって処理を分岐します。数が同じ場合、先にその数に達した方が勝者となるため、文字列Sを先頭から順に調べていきます。勝利数を引いていき、いずれかの数が0になった時点で、その文字を出力しプログラムを終了します。数が同じでない場合、多い方が勝者となります。これは単純比較で、出力を分岐させます。与えられた数列に対して、隣接する2つの数の差の絶対値が1になるまで中間の数を追加する操作を行います。操作後の数列を出力する問題です。隣接する数の差が1より大きい場合、その間の数を追加することで差を1にします。数列の数は1つでも、多くても問題なく処理できます。アプローチ数列の各項を前から順に見ていき、その項と次の項の差が2以上なら、その差が1になるように間の数を挿入します。この操作を数列の最初から最後まで行います。出力には新たな数列を用います。