0.はじめに
途中で502エラーとかでて問題すら見えない状態に。
すぐ復旧しましたが、先週に続いてNoratedに。
記念すべき300回を前にして変な邪魔が入って悲しいです・・・。
結果自体はA~Cは解けましたが、Dは今一解き方がわからず
時間切れ。解説を見てなんとか解けました。
1.A - Treasure Chest
回答速度優先で単純に以下を実装
状態遷移を保持する変数flgを用意
flgに0をセット
文字列を1文字目から見ていき、
flg=0かつ、文字が"|"の時flgを1に変更
flg=1かつ、文字が"*"の時flgを2に変更
flg=2かつ、文字が"|"の時flgを3に変更
文字列をすべて見た後で
flgが3であれば、inを出力
そうでなければoutを出力
https://atcoder.jp/contests/abc299/submissions/40831705
2.B - Trick Taking
こういうゲーム系問題が出ると、このゲーム面白いの?とか余計なことを
考えて問題に集中ができなくなります・・・。
気を取り直してチャレンジ。
頭からカードを見ていって、①Tとマークが一致するカードをもとにしたチェックと
②1枚目のマークと一致するカードをもとにしたチェックを行う。
①のチェックに該当するカードがあれば、それを表示し
なければ②のチェックのカードを表示する。
ややこしくはありましたが、素直に実装してACでした。
https://atcoder.jp/contests/abc299/submissions/40841499
3.C - Dango
最初はCにしては簡単かと思ったけど意外と奥が深い感じでした。
串("-")があったかを保持する変数と、団子"o"が連続した最大数を保持する変数dmを用意し
Sを頭からチェック。
チェック後、串がなかったら”-1”を出力、あったらdmを出力。
と、簡単に行けそうなところを実装ではいろいろゴテゴテしてしまいました。
https://atcoder.jp/contests/abc299/submissions/40855632
4.D - Find by Query
雑に頭から10個末尾から10個0と1の先がないかをチェックするという
処理を作ったところやはりWA。
2分探索も考えましたが、それでうまく境目が見つかる自信がありませんでした。
解説を読み、2分探索 でどこでもいいから境目が見つかればいいという考え方を
知り、なるほどな。となりました。
https://atcoder.jp/contests/abc299/submissions/40890383
以上