5
g, y, x = egcd(b % a, a)6
return (g, x - (b // a) * y, y)24
def append(self, val):29
self.seq.append([val, self.mulC, self.addC])31
def addAll(self, inc):36
self.addC = (self.addC % mod + inc % mod) % mod43
self.mulC = (self.mulC % mod * m % mod) % mod44
self.addC = (self.addC % mod * m % mod) % mod46
def getIndex(self, idx):51
if idx >= len(self.seq):54
mulCo = self.seq[idx][1]55
addCo = self.seq[idx][2]56
val = self.seq[idx][0]58
inv = modinv(mulCo, mod)59
a = (self.mulC % mod * inv % mod) % mod60
val = (val % mod * a % mod) % mod61
b = (addCo % mod * a % mod) % mod62
val = (val % mod - b % mod) % mod63
val = (val % mod + self.addC % mod) % mod