bouzuya.hatenablog.com

ぼうずやのにっき

RefHelper をまとめてみた / ABC163 A, B, C, D を解いた

bouzuya/tsukota で Firestore の DocumentReference や CollectionReference を生成する関数を一箇所にまとめてみた。パスの構築はミスしそうなのでパスヘルパーが欲しくなる。それと同じ考えでくくりだしてみた。 RefHelper ? かな。 withConverter 呼び出しも兼ねられるので適切な型が指定されるので良い。


ABC163 : AtCoder Beginner Contest 163

use proconio::input;

fn main() {
    input! {
        n: usize,
        k: usize,
    };
    let p = 1_000_000_007;
    // sum of [a, b]
    let f = |a: usize, b: usize| -> usize {
        if a > b {
            0
        } else {
            (a + b) * (b + 1 - a) / 2
        }
    };
    let mut sum = 0_usize;
    for x in k..=n + 1 {
        let min = f(0, x - 1);
        let max = f(n + 1 - x, n);
        let count = max - min + 1;
        sum += count;
        sum %= p;
    }
    let ans = sum;
    println!("{}", ans);
}

今日のコミット。