#P16450. pm_10459折纸与涂色

pm_10459折纸与涂色

题目背景

学校美术社准备举办一次折纸创作展。社员小濑负责制作一张巨大的彩纸背景板,他想先把纸按指定方式折叠,再在折好的纸面上涂一个矩形。颜料会渗透所有纸层,因此把纸重新展开后,原纸上会同时出现若干块对称的涂色区域。

小濑会进行多次折叠与涂色。每次操作结束后,他都会把纸完全展开,再进行下一次操作。现在他想知道,所有操作完成后,整张纸还有多少面积没有被颜料覆盖。

题目描述

有一张宽为 WW、高为 HH 的矩形纸。把原纸看作平面上的矩形

[0,W]×[0,H].[0,W]\times[0,H].

需要依次执行 KK 次操作。第 ii 次操作给出六个整数

xfoldi,cnti,x1i,y1i,x2i,y2i.xfold_i,\,cnt_i,\,x1_i,\,y1_i,\,x2_i,\,y2_i.

每次操作按以下顺序进行:

  1. 沿直线 x=xfoldix=xfold_i 折叠,将折线左侧的纸向右侧翻折。
  2. 将当前纸张沿水平方向分成 cnti+1cnt_i+1 个等高部分。重复 cnticnt_i 次:把当前最上方的一部分向下折到它下面的一部分上。
  3. 在折叠后的纸面坐标系中,涂满左下角为 (x1i,y1i)(x1_i,y1_i)、右上角为 (x2i,y2i)(x2_i,y2_i) 的轴对齐矩形。
  4. 颜料会渗透所有纸层。随后把纸完全展开,涂色痕迹保留在原纸上。

折叠后的坐标原点始终取当前纸张的左下角。一次操作产生的涂色区域可能与此前操作产生的区域重叠,重叠部分只能计算一次。

请计算全部操作结束后,原纸上没有被涂色的总面积。

边界线的面积为 00,因此矩形采用闭区间或半开区间描述都不影响答案。

折叠示意图

下面展示样例 11 中宽为 55、高为 66 的纸张进行一次操作的过程。图中的白色格子表示展开后被涂色的单位区域。

输入格式

第一行包含三个整数 W,H,KW,H,K,分别表示纸张的宽、纸张的高和操作次数。

接下来 KK 行,第 ii 行包含六个整数:

xfold_i cnt_i x1_i y1_i x2_i y2_i

表示第 ii 次操作的参数。

输出格式

输出一个整数,表示全部操作完成后,原纸上没有被涂色的总面积。

样例 1

输入

5 6 1
2 2 1 1 3 2

输出

21

说明

原纸面积为 5×6=305\times6=30

展开后共有面积为 99 的区域被涂色,因此未涂色面积为

309=21.30-9=21.

样例 2

输入

2 4 2
0 1 0 1 2 2
0 0 0 1 1 4

输出

3

样例 3

输入

6 6 2
2 1 1 2 3 3
5 2 2 0 4 2

输出

18

样例 4

输入

21 30 5
3 4 4 2 7 5
21 14 0 0 19 2
7 9 2 1 6 2
11 5 5 2 11 4
13 4 9 3 12 5

输出

27

数据范围

  • 1W,H1091\le W,H\le 10^9
  • 1K501\le K\le 50
  • 0xfoldiW0\le xfold_i\le W
  • 0cnti10000\le cnt_i\le 1000
  • cnti+1cnt_i+1 一定是 HH 的约数;
  • 0x1i<x2imax(xfoldi,Wxfoldi)0\le x1_i<x2_i\le\max(xfold_i,W-xfold_i)
  • 0y1i<y2iHcnti+10\le y1_i<y2_i\le\dfrac{H}{cnt_i+1}
  • 答案不超过 101810^{18},需要使用 6464 位整数。