AtCoder Beginner Contest 048

はい。
AtCoder Beginner Contest 048
あーうーうー?

A - AtCoder *** Contest

先頭1文字ずつ。

B - Between a and b ...

bまでまとめて数えてa手前を引く。0は割り切れる扱い。

C - Boxes and Candies

最左からみてペアの右を優先しながら減らしていきました。

D - An Ordinary Game

さっぱりわからなかった。検索してなんとかAC。
ゲーム終了は2種の文字だけ残るはず。3種類目があったら文字列3文字以上でそれを取り除ける形のはず。
abやabab、abaがあり得る最終形かな。最終形を考えることは開放の発見に役に立つのだろうか。。。

先頭と末尾同じで長さが奇数なら2番手の勝ち。
abcba acba aca とかかな?2番手がacaの形にして手番を回すと、1番手が何も出来なくて2番手の勝ち。

先頭と末尾同じで長さが偶数なら1番手の勝ち。
abca aca 1番手がacaの形にして手番を回すと、2番手が何も出来なくて1番手の勝ち。

先頭と末尾が異なって、長さが奇数なら1番手の勝ち。
abc ac 1番手がacの形にして、2番手が何も出来なくて1番手の勝ち。

先頭と末尾が異なって、長さが偶数なら2番手の勝ち。
abcb acb ab 1番手がacbの形にして、2番手がabの形にして、1番手が何も出来なくて2番手の勝ち。
なのかな。ACしたif分岐を書き出したつもりのこの論理が合ってるか不明ですけど。
これを時間中に気づく、組み立てる出来るまでは結構な訓練が必要そう。長さ偶奇に注目はあるあるですけど。