ABC260 C - Changing Jewels
提出
code: python
n, x, y = list(map(int, input().split()))
# Rn * 1
# Rn => Rn-1 + Bn * X
# Bn => Rn-1 + Bn-1 * Y
# Rn => Rn-1 + (Rn-1 + Bn-1 * Y) * X => Rn-1 * (X + 1) + Bn-1 * (X * Y)
# 2 3 4
def exchange(level, rnum):
if level == 2:
return rnum * x * y
elif level == 1:
return 0
else:
return exchange(level - 1, x+1)
print(exchange(n, 1))
解答
code: python
n, x, y = list(map(int, input().split()))
# Rn => Rn-1 + Bn * X
# Bn => Rn-1 + Bn-1 * Y
def exchange(level, is_red):
if level == 1:
return 0 if is_red else 1
if is_red:
return exchange(level - 1, True) + exchange(level, False) * x
else:
return exchange(level - 1, True) + exchange(level - 1, False) * y
print(exchange(n, True))
メモ