0.はじめに
ABCにクリスマスが冠されるこの頃に参戦。
Cにてこずりつつ、何とか3問クリアしDに取り組むも、試験終了5分後にACと
惜しくも間に合わず、3問止まりでした。
レートは+12と微増でした。
1. A - Equally
いい感じの工夫をすればスタイリッシュにかけそうでしたが
時間優先で思いつくケースすべてを列挙して
条件文を書きYesとNoに振り分けました。
https://atcoder.jp/contests/abc385/submissions/60943779
2.B - Santa Claus 1
Bとは思えない複雑な問題・・・
とはいえ、コーディングが面倒なだけで
数学的工夫とか競プロテクニックがいるわけではない感じでした。
単純に、指定通りの方角へ移動させていき、壁以外だったら移動
家だったら、家の場所辞書をみて、登録されていればそのまま
登録されていなければ、登録しつつ回答用変数に1加算と
そのまま実装しACとなりました。
https://atcoder.jp/contests/abc385/submissions/60954976
3.C - Illuminate Buildings
上限3000ということで強引に全パターン行けるかなーとも思いましたが
まぁ、無駄に時間をロスするだけかなと思い考えて実装。
【考え方】
・ビルの高さ毎に、位置ののソート済みリストを用意
・ビルの高さ毎のリストを先頭から見ていき、一番長い等差数列を求め最後に出力
意外とてこずりましたが、まぁどこかで見たロジックの組み合わせで行けました。
https://atcoder.jp/contests/abc385/submissions/60970275
4.D - Santa Claus 2
Bと同様、一度通った家はカウントしないという部分がポイントになる感じでした。
【考え方】
列と行ごとに、その行列内の家の場所を持ったソート済リストを整備
移動ごとに、移動する行列内の移動範囲内にある家の場所をカウントしリスト化
回答項目に家のカウントを加算したあと、家の場所を行列の
ソート済みリストから削除する
上記を繰り返し、最後にサンタの位置と家のカウントを出力して終了
方針はすぐ決まりましたが、上手くカウントし、削除するのにてこずり
いつの間にか、時間を過ぎてました。
https://atcoder.jp/contests/abc385/submissions/60993322
以上