class AtCoder::FenwickTree(T)

Overview

Implements atcoder::fenwick_tree.

tree = AtCoder::FenwickTree(Int64).new(10)
tree.add(3, 10)
tree.add(5, 20)
tree[3..5]  # => 30
tree[3...5] # => 10

Defined in:

fenwick_tree.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(size : Int64) #

[View source]
def self.new(bits : Array) #

[View source]

Instance Method Detail

def [](range : Range) #

Implements atcoder::fenwick_tree.sum(left, right)

Open ended ranges are clamped at the start and end of array, respectively.


[View source]
def add(index, value) #

Implements atcoder::fenwick_tree.add(index, value)


[View source]
def bits : Array(T) #

[View source]
def left_sum(index) #

Exclusive left sum


[View source]
def size : Int64 #

[View source]
def sum(left, right) #

Implements atcoder::fenwick_tree.sum(left, right)


[View source]
def sum(range : Range) #

Implements atcoder::fenwick_tree.sum(left, right)

Open ended ranges are clamped at the start and end of array, respectively.


[View source]