'''
Given a nested list of integers, return the sum of all integers in the list
weighted by their depth.

Each element is either an integer, or a list --
whose elements may also be integers or other lists.

Example 1:

Input: [[1,1],2,[1,1]]
Output: 10 
Explanation: Four 1's at depth 2, one 2 at depth 1.

Example 2:

Input: [1,[4,[6]]]
Output: 27 
Explanation: One 1 at depth 1, one 4 at depth 2, and one 6 at depth 3;
 1 + 4*2 + 6*3 = 27.
'''
d = 0
def weighted_sum(input, d = 1):
    sum = 0
    for item in input:
        if isinstance(item, int):
            sum += item*d
        else:
            sum += weighted_sum(item,d+1)
    return sum

print(weighted_sum([[1,1],2,[1,1]]))
print(weighted_sum([1,[4,[6]]]))