rust-procon-lib

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub halphy/rust-procon-lib

:heavy_check_mark: examples/library_checker_point_add_range_sum.rs

Depends on

Code

// competitive-verifier: PROBLEM https://judge.yosupo.jp/problem/point_add_range_sum

use proconio::input;
use rust_procon_lib::data_structure::segment_tree::segment_tree::SegmentTree;

fn main() {
    input! {
        n: usize,
        q: usize,
        a: [usize; n],
    }

    let mut seg = SegmentTree::new(n, 0, |x, y| x + y);
    seg.construct(&a);

    for _ in 0..q {
        input! {
            t: usize,
        }

        match t {
            0 => {
                input! {
                    p: usize,
                    x: usize,
                }

                seg.update(p, seg.get(p) + x);
            }
            1 => {
                input! {
                    l: usize,
                    r: usize,
                }

                println!("{}", seg.prod(l, r));
            }
            _ => unreachable!(),
        }
    }
}

Test cases

Env Name Status Elapsed Memory
Rust example_00 :heavy_check_mark: AC 5 ms 2 MB
Rust max_random_00 :heavy_check_mark: AC 406 ms 27 MB
Rust max_random_01 :heavy_check_mark: AC 360 ms 27 MB
Rust max_random_02 :heavy_check_mark: AC 360 ms 27 MB
Rust max_random_03 :heavy_check_mark: AC 380 ms 27 MB
Rust max_random_04 :heavy_check_mark: AC 365 ms 27 MB
Rust random_00 :heavy_check_mark: AC 346 ms 22 MB
Rust random_01 :heavy_check_mark: AC 327 ms 24 MB
Rust random_02 :heavy_check_mark: AC 268 ms 10 MB
Rust random_03 :heavy_check_mark: AC 50 ms 17 MB
Rust random_04 :heavy_check_mark: AC 90 ms 13 MB
Rust small_00 :heavy_check_mark: AC 6 ms 2 MB
Rust small_01 :heavy_check_mark: AC 6 ms 2 MB
Rust small_02 :heavy_check_mark: AC 6 ms 2 MB
Rust small_03 :heavy_check_mark: AC 6 ms 2 MB
Rust small_04 :heavy_check_mark: AC 5 ms 2 MB
Rust small_05 :heavy_check_mark: AC 6 ms 2 MB
Rust small_06 :heavy_check_mark: AC 6 ms 2 MB
Rust small_07 :heavy_check_mark: AC 5 ms 2 MB
Rust small_08 :heavy_check_mark: AC 6 ms 2 MB
Rust small_09 :heavy_check_mark: AC 6 ms 2 MB
Back to top page