def solve(n, m):
    if n % 2 == 1 and m == n:
        print("rec1 :", [[n - k, k] for k in range(1, n // 2 + 1)] + [[n]])
        return [[n - k, k] for k in range(1, n // 2)] + [[n]]
    elif n % 2 == 0 and m == n + 1:
        print("rec2 :", [[n - k, k] for k in range(1, n // 2) + 1] + [[n]])
        return [[n + 1 - k, k] for k in range(1, n // 2)]
    elif n + 1 < m < 2 * n:
        if m % 2 == 1:
            a = solve(m - n - 1, m)
            b = [[m-n+k,n-k] for k in range((2*n-m+1)//2)]
            print("rec3 :", a, b)
            return a + b
        else:
            r = solve(m - n - 1, m // 2)
            a = [r[0] + [m//2]] + [r[i]+r[i+1] for i in range(1, len(r)//2 + 1, 2)]
            b = [[m-n+k,n-k] for k in range((2*n-m+1)//2)]
            print("rec4 :", a, b)
            return a+b
    else:
        s = n*(n+1)//2
        j = s // m
        a = solve(n-2*j,m-(2*n-2*j+1))
        b = [[n-2*j+1+k,n-k] for k in range(j)]
        print("rec5 :", a, b, j)
        return list(x+y for x, y in zip(a, b))

def milk(n, k):
    s = n*(n+1)//2
    m = s // k
    return solve(n, m)
for x in milk(8,3):
    print(x, sum(x))

Embed on website

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