众所周知,Logx精通Excel。
他觉得表格只有单调的白色非常无聊,他决定将一些单元格涂黑。
在一个n行m列的表格里,刚开始所有单元格都是白的。
Logx打算在这个表格选出三个不同的单元格A(x1,y1),B(x2,y2),C(x3,y3),并将选中的三个单元格涂黑。
为了使表格看起来美观,Logx会使每一行和每一列均至多有一个格子被涂黑。
他称一种选择方案是好的,当且仅当L≤|x1-x2|+|y1-y2|+|x2-x3|+|y2-y3|+|x1-x3|+|y1-y3|≤R,即这三个黑格子之间两两的曼哈顿距离之和在区间[L,R]内。其中L,R是他给定的两个常数。
两种方案不同,当且仅当存在一个格子,在一种方案中被涂黑了,在另一种方案中没有被涂黑。
Logx想要知道,有多少种选择方案是好的。
输入
输入仅一行,包含四个正整数 n,m,L,R,含义见题目描述。
输出
输出一行一个整数表示方案数。
由于答案可能很大,你只要输出方案数对10^9+7取模的结果。
样例输入 Copy
【样例1】
3 3 1 20000
【样例2】
3 3 4 7
【样例3】
4 6 9 12
【样例4】
7 5 13 18
【样例5】
4000 4000 4000 14000
样例输出 Copy
【样例1】
6
【样例2】
0
【样例3】
264
【样例4】
1212
【样例5】
859690013
提示
对于所有数据,3≤n,m≤10^16,1≤L≤R≤10^18。
结论:
1. 设三个不在同行同列的黑格子所围成的长方形为x * y,那么三个黑格子两两之间距离和为2 * (x + y - 2);
2. 设三个不在同行同列的黑格子所围成的长方形为x * y,有6 * (x - 2) * (y - 2)种方法放置三个黑格子;
3. 一个大小为x * y的长方形在n * m的格子中有(n - x + 1) * (m - y + 1);
首先将(L, R)区间拆成(1,R) - (1, L - 1)
所以




最低0.47元/天 解锁文章
1489

被折叠的 条评论
为什么被折叠?



