#P1576. 网格

网格

题目描述

给定一个 hh 行 ww 列的网格,每个单元格需填入 [1,m][1, m] 范围内的整数。存在 nn 条约束,每条约束指定一个子矩阵(左上角 (x1,y1)(x_1,y_1),右下角 (x2,y2)(x_2,y_2)),要求该子矩阵内所有单元格的最大值恰好等于 vv。形式化地,设网格矩阵为 AA,Ai,jA_{i,j} 表示第 ii 行第 jj 列的值,每条约束要求:

$$\max\{A_{i,j} \mid x_1 \leq i \leq x_2,\ y_1 \leq j \leq y_2\} = v$$

计算满足所有约束的网格填数方案数量,结果对 109+710^9 + 7 取模。

输入格式

第一行输入四个整数 h,w,m,nh, w, m, n (1≤h,w,m≤100001\leq h,w,m \leq 10000, 0≤n≤100 \leq n \leq 10),分别表示网格行数、列数、数值上限、约束数。

接下来 nn 行,每行五个整数 x1,y1,x2,y2,vx_1, y_1, x_2, y_2, v (1≤x1,x2≤h1\leq x_1,x_2 \leq h, 1≤y1,y2≤w1\leq y_1,y_2 \leq w, 1≤v≤m1\leq v \leq m),描述一条约束。

输出格式

一行一个整数,表示方案数模 109+710^9 + 7 的结果。

样例输入

2 3 2 1
1 2 2 3 2

样例输出

60

数据范围

对于 20%20\% 的数据,h,w,n,m≤3h,w,n,m \leq 3;

另有 10%10\% 的数据满足 n=0n = 0;

另有 20%20\% 的数据满足 n=1n = 1;

对于 100%100\% 的数据,h,w,n,m≤10000,1≤v≤m,0≤n≤10h,w,n,m \leq 10000, 1\leq v \leq m, 0\leq n\leq 10。