학습지 알고리즘

N개 정점 위의 무방향 그래프 X 중 G(P)=X를 만족하는 순열 P의 개수가 l 이상 r 이하인 것의 수를 1e9+7로 나눈 나머지로 구한다.

어려움9조합론그래프수학동적 계획법아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

학습지로 유명한 회사가 초등학생용 코딩 학습지를 새로 만들기로 했다. 아이에게 코딩을 어떻게 가르쳐야 할지 몰라 난감해하던 학부모는 이 소식을 반겼다.

집필진으로 뽑힌 준서는 처음에는 이런 유행을 탐탁지 않아 했지만, 문제 하나당 5만원을 주겠다는 제안에 마음을 바꿨다.

그래프 알고리즘 단원을 맡은 준서는 다음 문제를 생각해 냈다.

11부터 NN까지의 순열 PP에 대해, 정점이 NN개인 무방향 그래프 G(P)G(P)를 다음과 같이 정의한다. 각 ii마다 정점 ii와 정점 PiP_i를 잇는 간선을 하나씩 긋는다. 셀프 루프와 중복 간선도 허용한다. 정점이 NN개인 무방향 그래프 XX가 주어지면, G(P)=XG(P) = X인 순열 PP를 모두 구하라.

준서는 답이 되는 순열이 너무 적지도, 너무 많지도 않기를 바란다. 즉 G(P)=XG(P) = XPPll개 이상 rr개 이하인 XX만 문제로 낸다. 돈을 많이 벌고 싶으므로 기준에 맞는 XX는 하나도 빠뜨리지 않고 문제로 낸다.

정점에는 11부터 NN까지 번호가 붙어 있고, 간선의 구성이 다르면 서로 다른 그래프로 센다. 준서는 문제를 몇 개나 낼 수 있을까?

입력

첫째 줄에 세 정수 NN, ll, rr이 주어진다. (1N2000001 \le N \le 200\,000, 1lr1091 \le l \le r \le 10^9)

출력

준서가 낼 수 있는 서로 다른 문제의 수, 즉 조건을 만족하는 그래프 XX의 개수를 109+710^9+7로 나눈 나머지를 한 줄에 출력한다.