2026-03-15 16:53:42 +0300 MSK
Fancy Sequence
Links
Code
class Fancy:
def __init__(self):
self.mod = 10**9 + 7
self.v = list()
self.a = 1
self.b = 0
# fast exponentiation
def quickmul(self, x: int, y: int) -> int:
return pow(x, y, self.mod)
# multiplicative inverse
def inv(self, x: int) -> int:
return self.quickmul(x, self.mod - 2)
def append(self, val: int) -> None:
self.v.append((val - self.b) * self.inv(self.a) % self.mod)
def addAll(self, inc: int) -> None:
self.b = (self.b + inc) % self.mod
def multAll(self, m: int) -> None:
self.a = self.a * m % self.mod
self.b = self.b * m % self.mod
def getIndex(self, idx: int) -> int:
if idx >= len(self.v):
return -1
return (self.a * self.v[idx] + self.b) % self.mod