src/cplib/collections/persistent_segtree

  Source   Edit

Types

PSegmentTree = ref object
  root: SegmentTreeNode
  lastnode: int
  op: proc (l: int; r: int): int
  e: int
  Source   Edit
SegmentTreeNode = ref object
  value: int
  left: SegmentTreeNode
  right: SegmentTreeNode
  Source   Edit

Procs

proc initSegmentTree(v: openArray[int]; op: proc (l: int; r: int): int; e: int): PSegmentTree {.
    ...raises: [Exception], tags: [RootEffect].}
  Source   Edit
proc query(st: PSegmentTree; l: int; r: int): int {....raises: [Exception],
    tags: [RootEffect].}
  Source   Edit
proc update(st: PSegmentTree; idx: int; value: int): PSegmentTree {.
    ...raises: [Exception], tags: [RootEffect].}
  Source   Edit