イノたまごラボ・あのぶる の「こんなの作ったよ!」

「イノたまごラボ」はひとり同人サークルのようなものです。今のところ同人誌は作っていませんが、ソフトウェアからイベントまで、心惹かれたものを細々と。

ABCリアタイチャレンジ・ABC360

  • やった回: ABC360
  • 成績: ABC3完 / 3ペナ(+未AC1ペナ) / 76:06(ペナ込み)
  • パフォーマンス: 604(推定)😇

うん、最近コンテストサボってて鈍っているのがとてもよく分かる結果ですね。Bは情状酌量の余地があるとしてこれはひどい

A問題: ABC360-A A Healthy Breakfast

atcoder.jp

ご飯の位置と味噌汁の位置を String#index で引いて比較。

B問題: ABC360-B Vertical Reading

atcoder.jp

なんかこれも偉い悩んで一旦後回しにしてから解き直した。問題文の誤読が結構多くて辛かった…

transposeかけたりとか色々頑張ったんだけど、Rails Girlsの競プロ同好会で見せてもらったこの方の解き方がすごくシンプルで読みやすかった。ありがたや~🙏 atcoder.jp

C問題: ABC360-C Move It

atcoder.jp

これは貪欲法というジャンル分けでいいんだろうか。あとArrayでもHashでも、キーをうまく活用したい系の問題。
「どれを動かすか」が重要であって「どの箱に置くか」は別に管理する必要がないので、一番重いのを残して あとはどんどん手放していくと手放した荷物の合計重量が答えになる。

解いてる間混乱しないようにコメントがっつり入れたので比較的読みやすいと思います(自画自賛)

D問題: ABC360-D Ghost Ants

(upsolveしたコード)

atcoder.jp

「右に行くアリと左に行くアリに分けちゃって、片方をループでぶん回してもう片方の何匹とすれ違うかを求めればいいのでは?すれ違うかどうかはそれぞれのスタート地点と時間から計算で求められるでしょ」という発想までは良かった。
良かったんだけどなんか累積和を出し始めたりとか迷走した結果時間切れ。解説と言うかいつも通りRubyでACした人のコードで勉強させてもらった結果、シンプルにソートして端と端のインデックスを二分探索して引き算したらすれ違うアリの数になるよねってことでわりとすんなりAC。コードもこっちの方が読みやすいんだなぁ……