Use this to learn the idea, then write your own version.
1package main2 3import (4 "bufio"5 . "fmt"6 "io"7)8 910type node93 struct {11 lo, ro *node9312 mn int13}14 15func build93(l, r int) *node93 {16 o := &node93{mn: 1e9}17 if l == r {18 return o19 }20 m := (l + r) >> 121 o.lo = build93(l, m)22 o.ro = build93(m+1, r)23 return o24}25 26func (o node93) update(l, r, i, val int) *node93 {27 if l == r {28 o.mn = val29 return &o30 }31 m := (l + r) >> 132 if i <= m {33 o.lo = o.lo.update(l, m, i, val)34 } else {35 o.ro = o.ro.update(m+1, r, i, val)36 }37 o.mn = min(o.lo.mn, o.ro.mn)38 return &o39}40 41func (o *node93) query(l, r, ql, qr int) int {42 if ql <= l && r <= qr {43 return o.mn44 }45 m := (l + r) >> 146 if qr <= m {47 return o.lo.query(l, m, ql, qr)48 }49 if m < ql {50 return o.ro.query(m+1, r, ql, qr)51 }52 return min(o.lo.query(l, m, ql, qr), o.ro.query(m+1, r, ql, qr))53}54 55func cf893F(in io.Reader, _w io.Writer) {56 out := bufio.NewWriter(_w)57 defer out.Flush()58 var n, rt, dfn, m, x, k, ans int59 Fscan(in, &n, &rt)60 rt--61 a := make([]int, n)62 for i := range a {63 Fscan(in, &a[i])64 }65 g := make([][]int, n)66 for range n - 1 {67 var v, w int68 Fscan(in, &v, &w)69 v--70 w--71 g[v] = append(g[v], w)72 g[w] = append(g[w], v)73 }74 75 nodes := make([]struct{ l, r int }, n)76 var dfs func(int, int)77 dfs = func(v, fa int) {78 nodes[v].l = dfn79 dfn++80 for _, w := range g[v] {81 if w != fa {82 dfs(w, v)83 }84 }85 nodes[v].r = dfn - 186 }87 dfs(rt, -1)88 89 ts := []*node93{build93(0, n-1)}90 dis := make([]int, n)91 dis[rt] = 192 q := []int{rt}93 for len(q) > 0 {94 tmp := q95 q = nil96 t := ts[len(ts)-1]97 for _, v := range tmp {98 t = t.update(0, n-1, nodes[v].l, a[v])99 for _, w := range g[v] {100 if dis[w] == 0 {101 dis[w] = len(ts) + 1102 q = append(q, w)103 }104 }105 }106 ts = append(ts, t)107 }108 109 Fscan(in, &m)110 for range m {111 Fscan(in, &x, &k)112 x = (x + ans) % n113 k = (k + ans) % n114 p := nodes[x]115 ans = ts[min(dis[x]+k, len(ts)-1)].query(0, n-1, p.l, p.r)116 Fprintln(out, ans)117 }118}119 120121