[BOJ 12992] 홍준이의 교집합

View as PDF

Submit solution

Points: 4
Time limit: 2.0s
Memory limit: 512M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

홍준이에게는 수평면 상에서 N개의 1차원 구간이 있습니다. i번째 구간을 Li , Ri라고 하겠습니다. 이때, 구간의 길이는 f([Li , Ri])= Ri – Li + 1로 정의하겠습니다. F(공집합) = 0입니다.</p>

N 이하의 정수 k가 주어질 때, ( \displaystyle\sum_{1 \le i_1  < i_2  <  ...  < i_k  \le N} {f([L_{i_1}, R_{i_1}]\bigcap[L_{i_2}, R_{i_2}]\bigcap ... \bigcap [L_{i_k}, R_{i_k}])} ) 를 계산하는 프로그램을 작성하세요. 즉, 가능한 모든 서로 다른 k개의 선분을 골랐을 때 k개의 선분의 교집합의 길이의 합을 구하여야 합니다.

답이 매우 커질 수 있으므로, 109+7로 나눈 나머지를 출력하세요.

입력 형식

첫째 줄에 N과 k가 주어집니다.(1 ≤ k ≤ N ≤ 200,000)</p>

둘째 줄부터 N개의 줄에 걸쳐서 i+1(1 ≤ i ≤ N)번째 줄에 Li와 Ri를 나타내는 2개의 정수가 주어집니다. (-109 ≤ Li, Ri ≤ 109)

출력 형식

가능한 모든 서로 다른 k개의 선분을 골랐을 때 k개의 선분의 교집합의 길이의 합을 109+7로 나눈 나머지를 출력하세요.

예제 입력

3 2
1 2
1 3
2 3

예제 출력

5

힌트

( {f([1,2]\bigcap[1,3]) = f([1,2]) = 2} )</p>

( {f([1,2]\bigcap[2,3]) = f([2,2]) = 1} )

( {f([1,3]\bigcap[2,3]) = f([2,3]) = 2} )


Comments

There are no comments at the moment.