0.はじめに
先週入緑したので、今回最低でもDまでは行きたかったのですが
残念ながらCまでで精一杯でした・・・。
レート更新の結果、791で、茶色に逆戻りでした。
短い天下(というほどでもないけど)でした。
1.A - Nine
スタイリッシュな回答をしたかったですが
まぁ回答時間優先で、隣り合うABの組み合わせをすべて
IF文で指定して愚直な実装となりました。
https://atcoder.jp/contests/abc309/submissions/43342535
2.B - Rotate
なかなかややこしいな・・・と飛ばしかけましたが
よく考えたら1行目と最後の行とその他の行の場合分けで
すっきり解けました。
https://atcoder.jp/contests/abc309/submissions/43351658
3.C - Medicine
高橋君何年生きるねん!とか、ご飯食べれなくなるのでは・・・とか
雑念が浮かぶ中回答。
TLEをよける工夫が必要なんだろうなと考察。
最初に、a,bを読み込む際に
a,bはリストに保持し
bを集計し、MAXの飲む個数を保持。
a,bのリストは昇順にソートし
先頭から読みつつ、bの個数をMAX個数から引いていく
K個以下になった際のaの日数に1を足した日が
飲む個数がK個以下になる日なので、その日を出力して終了。
最後までK個を下回らなかった場合は、最後のaの値に1を足して出力。
と、意外とすんなり解けました。
https://atcoder.jp/contests/abc309/submissions/43360744
4.D - Add One Edge
40分苦戦して終了間際ぎりぎりに何とか提出したものの
AC25 RE11 TLE15と、玉砕でした。
N1グループは頂点1から最大の距離を選びN2グループはN1+N2の頂点から
最大の距離を選び、それに1を足して出力という考え方自体は
間違っていなさそうなので、細かい詰めと、冗長な経路算出部分を
整理して出直したいと思います。
以上