슬랙라인 놀이

시간 제한2초메모리 제한512 MB

요약
거리가 L 이상 R 이하이면서 다른 나무가 없는 나무 쌍의 수를 구합니다. 격자점 가시성과 띠 번호 포함배제로 셉니다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 조합론, 구현
정답자
아직 제출이 없습니다

문제

Beltrano는 최근 슬랙라인에 흥미를 가졌다. 슬랙라인은 두 고정점 사이에 팽팽하게 당긴 탄성 띠 위에서 균형을 잡으며 걷고 묘기를 부리는 스포츠이다. 방학 동안 Beltrano가 하고 싶은 것은 오직 연습뿐이라, 그는 친구의 농장으로 갔다. 그곳에는 유칼립투스 농장이 있다.

농장은 아주 잘 정리되어 있다. 유칼립투스는 N개의 줄에 배열되어 있고 각 줄에는 M그루의 나무가 있다. 각 줄 사이에는 1미터의 간격이 있고, 서로 다른 줄의 나무들은 모두 완벽하게 정렬되어 있으며 그 사이 간격도 1미터이다.

Beltrano는 두 그루의 나무를 사용해 슬랙라인을 설치할 것이다. 슬랙라인을 설치할 때 Beltrano는 두 나무 사이의 거리가 너무 짧은 것을 좋아하지 않는다. 최고의 묘기를 부리려면 띠가 적어도 L미터는 되어야 하기 때문이다. 또한 띠의 최대 길이가 R미터이므로 너무 많이 늘릴 수도 없다. 선택한 두 나무 사이에 띠를 팽팽하게 당길 때, 그 사이 선분 위에 다른 나무가 하나도 없어야 한다. 그렇지 않으면 띠 전체를 묘기에 사용할 수 없다.

Beltrano는 농장의 나무를 사용해 슬랙라인을 설치할 수 있는 서로 다른 방법이 몇 가지인지 알고 싶어 한다. 띠를 묶은 나무 중 적어도 하나가 다르면 두 방법은 서로 다른 것으로 본다.

입력

입력은 한 줄로 이루어져 있고, 네 정수 N, M, L, R이 주어진다. 각각 농장의 줄 수와 열 수, 슬랙라인의 최소 길이와 최대 길이를 나타낸다. (1 ≤ N, M ≤ 105; 1 ≤ L ≤ R ≤ 105)

출력

프로그램은 슬랙라인을 설치할 수 있는 서로 다른 방법의 수를 나타내는 정수 하나를 한 줄에 출력해야 한다. 결과가 클 수 있으므로 답은 109 + 7로 나눈 나머지로 출력한다.

예제3

  1. 예제 1

    입력
    2 2 1 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    2 3 1 4
    
    예상 출력
    13
    
  3. 예제 3

    입력
    3 4 1 4
    
    예상 출력
    49