keidaroo’s diary

底辺系競プロer

ABC63のD問題について

今回も今更感満載ですが復習として書きます。
ABCのCまで早解きできてある程度いい成績がとれたのではとか思っています。

Dは最後まで解くことができず、無理やりな法則立ててました。
考察してから、解かないと(これ前も言ってた)

では本題に入ります

解き方

まず、a=a-bをしましょう(すべての要素からbをひき、中心となるやつにはa-bを引けばよくなるから)

それで、n回攻撃するとし、すべての要素からbを引きます
各要素からaを何回引く必要があるのか計算します

それがn回以下ならおけ、大きければ足りないのでダメという感じで

答えをkotaeと置くと、kotae以上の回数行ったらそれはおけで、未満ならたりません

あれ、これってある地点が境になっていません??

にぶたんです、にぶたん(使ったことないとかナイショ)

自分がWA解答で間違えたところ

b*nを何回も引いてしまいました。。。
あと、掛け算するときに、オーバーフローする可能性があるという事を記憶しておきます。
もうlong longですべて済ませた方がいいのかもしれない
出力するのはokの値でした。。すみません

フェリンさん、有難うございます!

Tips

にぶたんのチェックのところは別の関数で作った方がいい、確かにきれいで見やすくなります。


やみともさんも有難うございます!



二分探索の方法

この方法神ですね、はい

まとめ

実装にいろいろ戸惑ったのが今回の反省点ですが、学ぶことも多かったので、ま、多少はね?という感じです