bouzuya.hatenablog.com

ぼうずやのにっき

bouzuya/genpi を書いている / ABC098 D を解いた

bouzuya/genpi を書いている。個人情報 (PI) を生成する何か。

とりあえず実行すると JSON で ほしいデータを出力する。

$ cargo run --quiet | jq .
{
  "date_of_birth": "1930-03-17",
  "first_name": "美香",
  "first_name_kana": "みか",
  "last_name": "森野",
  "last_name_kana": "もりの",
  "sex": "female"
}

とりあえず https://namegen.jp を適当にスクレイピングしたけど名前の生成は近いうちに自前でなんとかする。

「それ ChatGPT でできるよ」と言われると思いながら書いている。


use proconio::input;

fn main() {
    input! {
        n: usize,
        a: [usize; n],
    };
    let mut xor = 0_usize;
    let mut sum = 0_usize;
    let mut count = 0_usize;
    let mut r = 0_usize;
    for l in 0..n {
        while (r < n) && (xor ^ a[r] == sum + a[r]) {
            xor ^= a[r];
            sum += a[r];
            r += 1;
        }
        count += r - l;
        if r == l {
            r += 1;
        } else {
            xor ^= a[l];
            sum -= a[l];
        }
    }
    let ans = count;
    println!("{}", ans);
}

今日のコミット。