크라니키
시간 제한4초메모리 제한1024 MB
높이가 1부터 n까지인 선반 n개와 각 선반의 양 끝점 l_i, r_i가 주어질 때, 무작위 순서로 수도꼭지를 연 횟수의 기댓값을 10^9+7로 나눈 나머지로 구합니다.
문제
사장 Radek과 친구들의 회사에서 일하는 Radek은 경쟁사 Mati and Partners의 문서 선반을 모두 물에 잠기게 하려 한다. 완벽한 방해 공작을 위해 그는 친구인 배관공 Janusz에게 각 선반 위에 작은 수도꼭지를 달아 달라고 부탁했다.
선반은 평면 위의 선분으로 나타낸다. 번째 선반은 두 점 와 를 잇는 선분이다. 번째 선반 위의 수도꼭지는 에 설치된다. 바닥은 축이다.
번째 수도꼭지를 열면 번째 선반이 물에 잠긴다. 그러면 잠긴 선반의 양 끝에서 물이 아래로 똑바로 떨어진다. 물은 아래에 있는 다른 선반을 적시거나, 자연 배수 시설이 있는 바닥으로 떨어진다.

Radek은 수도꼭지를 정해진 순서대로 살펴본다. 번째 수도꼭지를 살펴볼 때, 번째 선반이 아직 잠기지 않았을 때에만 그 수도꼭지를 연다.
Radek은 아직 순서를 정하지 않았다. 그는 가지 순서 중 하나를 같은 확률로 무작위로 고른다. Radek이 평균적으로 열어야 하는 수도꼭지의 개수를 구하라.
입력
첫 줄에 자연수 ()이 주어진다. 이는 Mati and Partners의 선반 개수이다.
다음 개의 줄에는 선반에 대한 설명이 있다. 번째 줄에는 자연수 , ()가 주어진다. 여기서 이다.
모든 , 는 서로 다르다. 즉 이 수들은 부터 까지의 순열을 이룬다.
출력
Radek이 열어야 하는 수도꼭지 개수의 기댓값을 로 나눈 나머지를 한 줄에 출력한다. 형식적으로 기댓값을 라 하자 (, ). 이때 을 출력한다. 여기서 은 을 만족하는 이상 이하의 유일한 정수이다. 기약분수의 분모가 로 나누어떨어지지 않음이 증명되어 있다.
힌트
첫 번째 테스트에서 기댓값은 이다. 순서 1, 3, 2에서는 수도꼭지 1과 3을 연다. 수도꼭지 3을 연 뒤 두 번째 선반도 잠기므로 수도꼭지 2는 열지 않는다. 순서 3, 1, 2와 3, 2, 1에서는 수도꼭지 3만 열면 모든 선반이 잠긴다.