Use this to learn the idea, then write your own version.
1package main2 3import (4 "bufio"5 . "fmt"6 "io"7)8 910type seg93 []struct {11 l, r int12 a []int13}14 15func (t seg93) set(o int, a []int) {16 for i := range t[o].a {17 t[o].a[i] = 018 for j, v := range a {19 t[o].a[i] += v * (i>>j&1<<1 - 1)20 }21 }22}23 24func (seg93) op(a, b []int) []int {25 c := make([]int, len(a))26 for i, v := range a {27 c[i] = max93(v, b[i])28 }29 return c30}31 32func (t seg93) maintain(o int) {33 t[o].a = t.op(t[o<<1].a, t[o<<1|1].a)34}35 36func (t seg93) build(a [][]int, o, l, r int) {37 t[o].l, t[o].r = l, r38 if l == r {39 t[o].a = make([]int, 1<<len(a[l-1]))40 t.set(o, a[l-1])41 return42 }43 m := (l + r) >> 144 t.build(a, o<<1, l, m)45 t.build(a, o<<1|1, m+1, r)46 t.maintain(o)47}48 49func (t seg93) update(o, i int, a []int) {50 if t[o].l == t[o].r {51 t.set(o, a)52 return53 }54 m := (t[o].l + t[o].r) >> 155 if i <= m {56 t.update(o<<1, i, a)57 } else {58 t.update(o<<1|1, i, a)59 }60 t.maintain(o)61}62 63func (t seg93) query(o, l, r int) []int {64 if l <= t[o].l && t[o].r <= r {65 return t[o].a66 }67 m := (t[o].l + t[o].r) >> 168 if r <= m {69 return t.query(o<<1, l, r)70 }71 if m < l {72 return t.query(o<<1|1, l, r)73 }74 return t.op(t.query(o<<1, l, r), t.query(o<<1|1, l, r))75}76 77func CF1093G(_r io.Reader, _w io.Writer) {78 in := bufio.NewReader(_r)79 out := bufio.NewWriter(_w)80 defer out.Flush()81 82 var n, k, q, op, l, r int83 Fscan(in, &n, &k)84 a := make([][]int, n)85 for i := range a {86 a[i] = make([]int, k)87 for j := range a[i] {88 Fscan(in, &a[i][j])89 }90 }91 t := make(seg93, n*4)92 t.build(a, 1, 1, n)93 b := make([]int, k)94 m := 1<<k - 195 for Fscan(in, &q); q > 0; q-- {96 if Fscan(in, &op, &l); op == 1 {97 for i := range b {98 Fscan(in, &b[i])99 }100 t.update(1, l, b)101 } else {102 Fscan(in, &r)103 ans := -int(1e9)104 res := t.query(1, l, r)105 for i, v := range res {106 ans = max93(ans, v+res[m^i])107 }108 Fprintln(out, ans)109 }110 }111}112 113func max93(a, b int) int {114 if b > a {115 return b116 }117 return a118}119 120121