類題: ABC166 E - This Message Will Self-Destruct in 5s
今回の平面走査は Fenwick Tree が不要。ただの Vec(または HashBag) で良い。
どちらも $f(i)$ の頻度分布を管理することになる。
参考: 二重和(2つの値)
初期値 0 を代入する場合は 0_i64
のように型を明示的に書くのがよい。書かないと意図せずに i32 になってオーバーフローする可能性がある
let mut cnts = vec![0_i64; max + 1];
let mut cnts = FenwickTree::new(max + 1, 0_i64);
また、出力する答えにも型を付与しておくと良い。
dbg!("ここ変える")
はよい。テスト用にマジックナンバーを小さくしているときにうっかり提出しないようにする効果がある。export BACKTRACE=1
をやると配列外参照したときのバックトレースが見れる