bouzuya.hatenablog.com

ぼうずやのにっき

Pixel 5 を買った / ABC156 の A, B, C, D を解いた

Pixel 5 を買った。 2 台目。 Pixel 7a や 8 が小さいものになるならたぶん買わなくていいんだろうけど……不安なので買っておくことにした。


ABC156 : AtCoder Beginner Contest 156 の A, B, C, D を解いた。

use modint::ModInt1000000007 as ModInt;
use proconio::input;

fn main() {
    input! {
        n: usize,
        a: usize,
        b: usize,
    };

    let all = ModInt::new(2).pow(n as u64) - 1;
    let mut v_a = ModInt::new(1);
    for i in 0..a {
        v_a *= ModInt::new(n) - i;
    }
    for i in 1..=a {
        v_a /= i;
    }
    let mut v_b = ModInt::new(1);
    for i in 0..b {
        v_b *= ModInt::new(n) - i;
    }
    for i in 1..=b {
        v_b /= i;
    }
    let ans = all - v_a - v_b;
    println!("{}", ans);
}

// modint

『 ゆめフロ ランチの会 #11 』 https://yumemi.connpass.com/event/277423/ に参加した。Jest の高速化についての記事を読んでいた。


Expo のチュートリアル https://docs.expo.dev/tutorial/introduction/ を進めている。明日には終わる。


今日のコミット。