구간들

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

pp이상 qq이하인 모든 실수의 집합을 \[p,q]\[p,q]로 나타낸다. 이를 구간이라고 한다. p>qp > q일 수 있으며, 이 때 집합은 공집합인 것에 주의하라.

kk개의 구간 \[p_1,q_1]\[p\_1, q\_1], \[p_2,q_2]\[p\_2, q\_2], \cdots, \[p_k,q_k]\[p\_k,q\_k]의 교집합은 P=max(p_1,p_2,,p_k)P = \max{(p\_1, p\_2, \cdots , p\_k)}, Q=min(q_1,q_2,,q_k)Q = \min{(q\_1, q\_2, \cdots , q\_k)}라고 할 때, PP이상 QQ이하인 집합이므로, 구간 \[P,Q]\[P,Q]로 나타낼 수 있다.

어떤 구간 \[p,q]\[p,q]의 길이는 max(qp,0)\max{(q-p, 0)}으로 정의된다.

NN개의 구간 I_1I\_1, I_2I\_2, \cdots, I_NI\_N이 주어진다. l_i=\[s_i,e_i]l\_i = \[s\_i,e\_i]이다. I_iI\_i중에서 한 개이상의 구간을 선택하는 2N12^N-1가지의 모든 방법에 대해, 선택된 구간들의 교집합 길이의 합과 길이가 11이상인 교집합의 개수를 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 주어지는 구간의 개수를 나타내는 하나의 정수 NN(1N1051 ≤ N ≤ 10^5)이 주어진다.

다음 NN개의 줄의 ii번째 줄에는 I_iI\_i의 정보를 나타내는 두 정수 s_is\_i, e_ie\_i(0s_i,e_i1090 ≤ s\_i, e\_i ≤ 10^9)가 공백 하나로 구분되어 주어진다. I_i=\[s_i,e_i]I\_i = \[s\_i, e\_i]인 것이다.

출력

첫 번째 줄에 주어진 구간 중에서 한 개이상의 구간을 선택하는 2N12^N-1가지의 모든 방법에 대해, 선택된 구간들의 교집합 길이의 합과 길이가 11이상인 교집합의 개수를 공백 하나로 구분하여 출력한다. 이 수들은 매우 클 수 있으므로, 1,000,000,0071\\,000\\,000\\,007로 나눈 나머지를 출력하도록 한다.