小蓝有黄绿蓝三种颜色的小球,分别为 R,G,B个。同样颜色的小球没有区别。小蓝将这些小球从左到右排成一排,排完后,将最左边的连续同色小球个数记为 t1,将接下来的连续小球个数记为 t2,以此类推直到最右边的小球。请问,总共有多少总摆放小球的方案,使得 t1,t2,⋯为严格单调递增序列,即 t1≤t2≤t3。
输入描述
输入一行包含三个整数 R,G,B。
其中,0≤R,G,B≤50。
输出描述
输出一个整数,表示答案。
输入输出样例
示例 1
输入
3 6 0
输出
3
import itertools
# count用于对符合要求的组合计数
count = 0
num = [int(i) for i in input().split(' ')]
# 生成对应的所有小球列表
def set_list(num):
ball_list = []
for i in range(num[0]):
ball_list.append('R')
for i in range(num[1]):
ball_list.append('G')
for i in range(num[2]):
ball_list.append('B')
return ball_list
# 枚举所有小球的排列情况
combination = [list(i) for i in list(set(itertools.permutations(set_list(num), sum(num))))]
# 遍历所有情况,判断是否符合递增要求
for i in combination:
l = [len(list(v)) for k, v in itertools.groupby(i)]
if all(x < y for x, y in zip(l, l[1:])):
count += 1
print(count)