CSES - All subsequences

You are given a list of nn integers. Your task is to count how many longest increasing subsequences the list has.

For example, in the list [4,1,5,6,3,4,3,8][4,1,5,6,3,4,3,8], a longest increasing subsequence contains 44 numbers. The possible subsequences are [1,3,4,8][1,3,4,8], [1,5,6,8][1,5,6,8] and [4,5,6,8][4,5,6,8]. Thus the answer is 33 in this case.

In a file countlis.py, implement the function count_sequences that takes a list of integers as a parameter. The function should return the number of longest increasing subsequences.

The function should be efficient when 1n1001 \le n \le 100.

def count_sequences(numbers):
    # TODO

if __name__ == "__main__":
    print(count_sequences([1, 2, 3])) # 1
    print(count_sequences([3, 2, 1])) # 3
    print(count_sequences([1, 1, 1, 1, 1])) # 5

    print(count_sequences([1, 8, 2, 7, 3, 6])) # 1
    print(count_sequences([1, 1, 2, 2, 3, 3])) # 8
    print(count_sequences([4, 1, 5, 6, 3, 4, 3, 8])) # 3