public void Native() { LongSums sums; var seg = new SegtreeBeats <S, long, Op>(new S[10].Fill(new S(0))); seg.Apply(0, 8, 1); sums = new LongSums(new long[] { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }); for (int l = 0; l < 10; l++) { for (int r = l; r <= 10; r++) { seg[l..r].sum.Should().Be(sums[l..r]);
public override void Solve(ConsoleReader cr, ConsoleWriter cw) { int N = cr; int Q = cr; long[] a = cr.Repeat(N); var seg = new SegtreeBeats <S, F, Op>(a.Select(n => new S(n)).ToArray()); for (int q = 0; q < Q; q++) { int t = cr; int l = cr; int r = cr; if (t == 3) { cw.WriteLine(seg[l..r].sum);