아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

구간들

시간 제한1초메모리 제한1024 MB

요약
N개 구간의 공집합이 아닌 모든 부분집합에 대해 교집합 길이의 합과 길이가 1 이상인 교집합의 개수를 1,000,000,007로 나눈 나머지로 구한다.
난이도

보통10점 중 7점

유형
정렬, 조합론, 누적 합
정답자
아직 제출이 없습니다

문제

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⁡(q−p,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중에서 한 개이상의 구간을 선택하는 2N−12^N-1가지의 모든 방법에 대해, 선택된 구간들의 교집합 길이의 합과 길이가 11이상인 교집합의 개수를 구하는 프로그램을 작성하라.

입력

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

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

출력

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

예제1

  1. 예제 1

    입력
    4
    1 4
    1 3
    2 4
    5 6
    
    예상 출력
    14 8