from math import isqrt
# [1, 2, -3] => f(1) = 3 
# [1, -2, 3, 4, -5, 6, -7] => f(2) = 7 
# [1, 2, -3] => f(3) = 3 
# [-1, 2, 3, -4] => f(4) = 4 
# [1, 2, 3, 4, -5, -6, -7, 8] => f(5) = 8

def solve(n):
    triangular = lambda x: x *(x + 1) // 2
    k = isqrt(2 * n)
    l = isqrt(4 * n)
    while 1:
        Tk = triangular(k)
        if Tk >= n and Tk % 2 == n % 2:
            r = (Tk - n) // 2
            
            rem = list(range(1, k + 1))
            s = r
            j = k
    
            while s - j > 0:
                rem[j - 1] *= - 1
                s -= j
                j -= 1
            if s > 0:
                rem[s - 1] *= -1
            
            
            
            while triangular(l) - r < n:
                l += 1
            print(rem, sum(rem), l)
            break
        k += 1

for n in range(1, 10):
    solve(n)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: