#P0901. 三维评分表
三维评分表
题目背景
训练营里有一张三维评分表。每次查询会给出三个整数 ,系统按照固定规则查出对应的评分值。
如果直接按规则一层层展开计算,同一个状态会被反复查询很多次,所以需要把已经算过的结果保存下来。
题目描述
记查询结果为 ,它的规则如下,并且必须按照从上到下的顺序判断:
- 如果 或 或 ,则 ;
- 否则如果 或 或 ,则 ;
- 否则如果 且 ,则
- 否则,
例如 同时涉及大于 和不大于 的情况,但因为第一条规则排在最前面,所以结果为 。
请对输入中的每一组查询输出对应结果。
输入格式
输入包含多组查询。
每组查询包含三个整数 。
当读入 -1 -1 -1 时表示输入结束,这一行不需要计算。
输出格式
对于每组查询,输出一行,格式为:
w(x, y, z) = result
其中 为原输入中的三个整数,result 为对应的查询结果。注意逗号、等号两侧的空格。
样例
25 -1 -1
1 1 1
-1 -1 -1
w(25, -1, -1) = 1
w(1, 1, 1) = 2
提示
w(x,y,z)=w(x,y,z-1)+w(x,y-1,z-1)-w(x,y-1,z)
w(x,y,z)=w(x-1,y,z)+w(x-1,y-1,z)+w(x-1,y,z-1)-w(x-1,y-1,z-1)
数据范围
对于 的数据,保证输入的行数不大于 ,并且 。
对于 的数据,保证输入的行数不大于 ,并且 。