bouzuya.hatenablog.com

ぼうずやのにっき

子どもは熱だがいつものように元気だ / joi2014yo_d を解いた

良かったなら良かったよ

https://iris.to/note1j45vvuyy9hwhcweq82xjdx8y845fmnhxfyft7qhh25yn5ymlulhs4as842

某記事を見て。本人が良かったと思えるならそれは良かったんだと思う。

子どもが熱を出している。……が、いつものように元気だ。


bouzuya/tsukota 。アカウントの共有機能を追加しようとしている。

  • イベントの追加
  • @bouzuya/tsukota-account-events を更新
  • account module に addOwner と removeOwner を追加

次は functions を更新かな。 UI をどうするかまだ考えていない。とりあえず妻のアカウントを共有できればそれでいい。


use proconio::{input, marker::Chars};

fn main() {
    input! {
        _n: usize,
        s: Chars,
    }

    let chars = "JOI".chars().collect::<Vec<char>>();
    let mut dp = vec![0_usize; 1 << 3];
    dp[1] = 1_usize;
    for s_i in s {
        let mut next = vec![0_usize; 1 << 3];
        let mask = 1 << chars.iter().position(|c| c == &s_i).unwrap();
        for prev_bits in 0..1 << 3 {
            for next_bits in 0..1 << 3 {
                if (next_bits & mask) == 0 {
                    continue;
                }
                if (prev_bits & next_bits) == 0 {
                    continue;
                }
                next[next_bits] += dp[prev_bits];
                next[next_bits] %= 10_007;
            }
        }
        dp = next;
    }
    let ans = dp.iter().copied().sum::<usize>() % 10_007;
    println!("{}", ans);
}

今日のコミット。