(c++)【题目描述】
二胎弟弟不小心把哥哥的作业人道毁灭。假设哥哥的作业在一张 width × height 的纸上。
弟弟在纸上的操作步骤如下:
- 从直线 x = xfold 对折(是把左边的纸折到右边上面);
- 把纸竖直对折成 cnt + 1 等份, 就是把最上面的折到下面,共操作 cnt 次;
- 现在弟弟画了一个实心矩形,左下角的坐标是(x1, y1),右上角坐标是 (x2, y2)。 注意: (x1, y1) 、 (x2, y2) 是把纸折完之后的坐标,(0, 0)是左下角坐标, 弟弟画的那些格子的墨水都会渗到它对应的下层的那些格子;
- 再次展开纸。
例如:有一张 5 × 6 的纸,弟弟先把直线 x = 2 左边的纸折到右边去。cnt = 2,则把纸竖直对折成3份。然后,弟弟画了一个矩形,左下角坐标是 (1, 1) , 右上角坐标是 (3, 2)。 再次展开
给定纸的 width 、 height、 xfold、 cnt、 x1、 y1、 x2、 y2,请问画完之后, 还有多少个格子没有被渗到颜色的。
【输入格式】
第一行: K(1 <= K <= 5) ,表示有 K 组测试数据。
每组测试数据一行, 共 8 个整数: width、 height、 xfold、 cnt、 x1、 y1、 x2、 y2。
【输出格式】
K行,每行一个整数。 表示画完之后还有多少个格子没有被渗到颜色。
【样例输入输出1】
1
5 6 2 2 1 1 3 2
21
【数据规模】
0 <= xfold <= width
0 <= cnt <= 1000, 保证cnt+1 能被 height整除;
0 <= x1 < x2 <= max(xfold, width-xfold),0 <= y1 < y2 <= height/(cnt+1)