#P5533. Large Banner

Large Banner

题目描述

贝西从国外长途旅行回到根西岛,农夫约翰想为她的到来挂上一个漂亮的"欢迎回家"横幅。FarmerJohn{Farmer John }的田地具有整数尺寸 MxN(1<=M,N<=100,000),{M x N (1 <= M, N <= 100,000),}并且他在田地的每个可能点都安装了一个带有整数坐标的柱子(如果我们为田地分配一个坐标系,那么 (0,0){( 0,0) }位于左下角,(M,N){(M,N) }位于右上角)。在这些 (M+1)∗(N+1){(M+1) * (N+1) }个点中,FarmerJohn{Farmer John }必须选择两个作为横幅的端点。

作为完美主义者的农夫约翰坚持横幅必须完全笔直。这意味着,对于他选择的两个帖子,在它们之间将形成横幅的线段上不能有任何其他帖子。此外,FarmerJohn{Farmer John }希望横幅的长度至少为 L,{L,}最多 为 H(1<=L<=H<=150,000){H (1 <= L <= H <= 150,000)}。农夫约翰需要你的帮助来弄清楚他可以用多少种方法来悬挂横幅。横幅是可逆的,因此切换横幅的两个端点算作悬挂横幅的相同方式。由于这个数字可能非常大,FarmerJohn{Farmer John }只想知道它是模 B(1<=B<=1,000,000,000){B (1 <= B <= 1,000,000,000)}。

考虑下面的示例,其中 M=2{M = 2 }且 N=2:{N = 2:}

∗∗∗∗∗∗∗∗∗FarmerJohn{* * * * * * * * * Farmer John }希望横幅的长度在 1{1 }到 3{3 }之间(含 1{1 }到 3){3)}。任何选择的帖子都满足这个长度要求,但请注意不能选择八对:

(0,0){(0, 0) }和 (2,0):{(2, 0):}(1,0){(1, 0) }在它们之间的线段上

(0,1){(0, 1) }和 (2,1):{(2, 1):}(1,1){(1, 1) }在它们之间的线段上

(0,2){(0, 2) }和 (2,2):{(2, 2):}(1,2){(1, 2) }在它们之间的线段上

(0,0){(0, 0) }和 (2,2):{(2, 2):}(1,1){(1, 1) }在它们之间的线段上

(0,0){(0, 0) }和 (0,2):{(0, 2):}(0,1){(0, 1) }在它们之间的线段上

(1,0){(1, 0) }和 (1,2):{(1, 2):}(1,1){(1, 1) }在它们之间的线段上

(2,0){(2, 0) }和 (2,2):{(2, 2):}(2,1){(2, 1) }在它们之间的线段上

(0,2){(0, 2) }和 (2,0):{(2, 0):}(1,1){(1, 1) }在它们之间的线段上

因此,总共有 (9{(9 }选择 2)−8=28{2) - 8 = 28 }个可能的位置。

给出n,m,l,h,{n,m,l,h,}问有多少点A(ax,ay),B(bx,by){A(ax,ay),B(bx,by)}满足:ax,bx∈{ax,bx∈}[0,n],ay,by∈{[0,n], ay,by∈}[0,m],{[0,m],}l<=AB<=h,{l<=AB<=h,}且线段AB{AB}上除A,B{A,B}外无整点。

输入格式

第 1{1 }行:五个空格分隔的整数:M{M}、N{N}、L{L}、H{H }和 B{B}。

输出格式

第 1{1 }行:一个整数,表示可能的横幅数量 (模B{B})。

样例

输入样例

2 2 1 3 100

输出样例

28