#P1579. Function Run Fun

Function Run Fun

本题没有可用的提交语言。

描述

我们都喜欢递归!不是吗?

考虑一个三参数递归函数w(a,b,c)w(a, b, c):

if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) 返回:

1

if a > 20 or b > 20 or c > 20, then w(a, b, c) 返回:

w(20, 20, 20)

if a < b and b < c, then w(a, b, c) 返回:

w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) 否则返回: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) 这是一个简单的函数来实现。问题是,如果直接实现,对于a、b和c的中等值(例如,a=15,b=15,c=15a = 15, b = 15, c = 15),由于大量递归,程序需要运行数小时。

输入

程序的输入将是一系列整数三元组,每行一个,直到文件结束标志111-1 -1 -1。使用上述技术,您将有效地计算w(a,b,c)w(a, b, c)并打印结果。

输出

1 1 1
2 2 2
10 4 6
50 50 50
-1 7 18
-1 -1 -1
w(1, 1, 1) = 2
w(2, 2, 2) = 4
w(10, 4, 6) = 523
w(50, 50, 50) = 1048576
w(-1, 7, 18) = 1

来源

太平洋西北1999