Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

エイシングプログラミングコンテスト2022(AtCoder Beginner Contest 255)

4完1WA。

各問題

A - You should output ARC, though this is ABC.

ちょっと方針に迷って、素直に二次元配列を作って出力しました。この問題ならif文4つ書くのもありっちゃあり。

B - Light It Up

さんざん迷走したあげく、二分探索でときました。

最初は公式解説のように解いていた(つもり)なのですが、なぜかサンプルが合わず...。何かバグらせていたのかな?

C - ±1 Operation 1

解けるけどlong longをはみ出るときめんどくさそうと思って先にDに行って帰ってきました。よくよく見ると、オーバーフローしない制約でした。on_

というわけで、場合分けして確定させるだけ。正負の扱いをミスって1WA。

D - ±1 Operation 2

Aはソートして累積和を取っておきます。各クエリ毎に、lower_boundを使ってAをX以下の部分とX以上の部分に分けて、過不足を計算すればよいです。事前に累積和を取っておけばこの計算は一発です。

例えばN=10で、AがXによって前4つと後ろ6つに分けられた場合、X * 4 - sum[0 - 4) + sum[4 - 10) - X * 6が答えになります。

E - Lucky Numbers

どこか1つ決めるだけで他が一意に決まるということはわかったのですが、それ以上わからず...。

まとめ

落ち着けば大したことのない問題でもたつきすぎました...。