编程题
### 问题描述 约翰正在返回从格恩西岛的一次长途旅行,农夫小齐想要为她的到来挂上一条漂亮的“欢迎回家”横幅。小齐的农田有整数尺寸 $M \times N$,他在田地的每个可能点都安装了一个柱子,坐标为整数坐标(如果我们为田地分配坐标系,使得 $(0,0)$ 在左下角,$(M,N)$ 在右上角)。在这 $(M+1) \times (N+1)$ 个点中,小齐必须选择两个作为横幅的端点。 小齐是个完美主义者,他坚持横幅必须是完全笔直的。这意味着,对于他选择的两个柱子,这两点之间的直线段上不能有其他柱子。此外,小齐希望横幅的长度至少为 $L$,至多为 $H$。小齐需要你的帮助来计算有多少种可能的方式可以挂上横幅。横幅是可逆的,所以交换横幅的两个端点算作挂横幅的同一方式。由于这个数字可能很大,小齐只想知道它对 $B$ 取模后的值。 ### 输入格式 * 一行:五个以空格分隔的整数:$M, N, L, H$ 和 $B$。 ### 输出格式 * 一行:一个整数,表示可能的横幅数量(对 $B$ 取模)。 ### 样例输入 ``` 2 2 1 3 100 ``` ### 样例输出 ``` 28 ``` ### 评测数据规模 $1 \leq M, N \leq 100,000$,$1 \leq L \leq H \leq 150,000$, $1 \leq B \leq 1,000,000,000$。
查看答案
赣ICP备20007335号-2