bouzuya.hatenablog.com

ぼうずやのにっき

『ボルト』を観た / ABC185 F を解いた

昨日だけど『ボルト』を観た。犬。


use proconio::input;
use segtree::*;

fn main() {
    input! {
        n: usize,
        q: usize,
        a: [usize; n],
        txy: [(usize, usize, usize); q],
    }
    let mut segtree = Segtree::<BitwiseXor<usize>>::new(n);
    for (i, a_i) in a.iter().copied().enumerate() {
        segtree.set(i, a_i);
    }

    for (t, x, y) in txy {
        match t {
            1 => {
                segtree.set(x - 1, segtree.get(x - 1) ^ y);
            }
            2 => {
                println!("{}", segtree.prod(x - 1..y));
            }
            _ => unreachable!(),
        }
    }
}

// segtree

今日のコミット。