codeFlyer (bitFlyer Programming Contest)オープンコンテスト:B - 交通費
問題
https://atcoder.jp/contests/bitflyer2018-final-open/tasks/bitflyer2018_final_b
考え方
各クエリに で答える必要がある。
交通費の条件に着目すると、 のとき
円であり、そうでない場合は
円であることから区間
に含まれる値の個数を求めたい。絶対値で場合分けして、
の右側の区間
と左側の区間
に含まれる個数を求める。
数直線上のある数以下の個数、ある数未満の個数は二分探索で求めることができる。区間の右側に含まれる個数を 左側に含まれる個数を
、それ以外の個数を
とすると求める解は
である。
Submission #4142816 - codeFlyer (bitFlyer Programming Contest)オープンコンテスト
どこに着目して考察するべきだったか
区間の個数を二分探索で求める気持ちになると解ける。
何がバグっていたか
得た知見(典型ポイント)
- 区間に含まれる個数を二分探索で求める
- 絶対値を外すように場合分け