29 lines
524 B
Python
29 lines
524 B
Python
cR = [1]
|
|
cS = [2]
|
|
|
|
def extend_RS():
|
|
x = cR[len(cR) - 1] + cS[len(cR) - 1]
|
|
cR.append(x)
|
|
cS += range(cS[-1] + 1, x)
|
|
cS.append(x + 1)
|
|
|
|
def ff_R(n):
|
|
assert(n > 0)
|
|
while n > len(cR): extend_RS()
|
|
return cR[n - 1]
|
|
|
|
def ff_S(n):
|
|
assert(n > 0)
|
|
while n > len(cS): extend_RS()
|
|
return cS[n - 1]
|
|
|
|
# tests
|
|
print([ ff_R(i) for i in range(1, 11) ])
|
|
|
|
s = {}
|
|
for i in range(1, 1001): s[i] = 0
|
|
for i in range(1, 41): del s[ff_R(i)]
|
|
for i in range(1, 961): del s[ff_S(i)]
|
|
|
|
# the fact that we got here without a key error
|
|
print("Ok")
|