summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxPython/sources/different_summands.py
blob: 48af063c9836dda8b0b9a0ea466c5e958f12f08c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Uses python3
import sys


def getOptimalSummands(n):
    summands = []
    if n < 3:
        summands.append(n)
        return summands
    runningSum = 0
    
    for i in range(1, n + 1):
        runningSum = runningSum + i
        summands.append(i)
        if runningSum == n:
            break
        if runningSum > n:
            del summands[-1]
            summands[-1] = summands[-1] + n - runningSum + i
            break
    return summands

if __name__ == '__main__':
    input = sys.stdin.read()
    n = int(input)
    summands = getOptimalSummands(n)
    print(len(summands))
    for x in summands:
        print(x, end=' ')