빔

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

요약
각 레이저 구간에 대해 저장된 모든 구간이 겹치지 않도록 옮겼다가 되돌리는 최소 전기료를 구한다.
난이도

어려움10점 중 8점

유형
정렬, 누적 합, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

당신은 구간 보관 서비스를 운영하고 있다. 현재 보관소에는 총 NN개의 구간이 보관되어 있고, 이 중 ii번째 구간은 수직선에서 \[l_i,r_i]\[l\_i, r\_i]로 나타난다.

보관소에 총 QQ회의 레이저 폭격이 예고되었다! 이 중 jj번째 레이저 빔의 피해 범위는 구간 \[s_j,e_j]\[s\_j, e\_j]로 나타낼 수 있다. 당신은 각 레이저 빔이 날아올 때마다, 보관된 구간을 적절히 옮겨서 빔에 맞는 구간이 없도록 해야 한다.

구체적으로, 보관된 각 구간 \[l_i,r_i]\[l\_i, r\_i]에 대해 적절한 정수 x_ijx\_{ij}를 정한다. 이 때 모든 (i,j)(i, j)에 대해 \[l_i+x_ij,r_i+x_ij]\[l\_i+x\_{ij}, r\_i+x\_{ij}]와 \[s_j,e_j]\[s\_j, e\_j]가 겹치는 부분의 길이가 00이 되도록 해야 한다. 두 구간 \[a,b]\[a, b]와 \[c,d]\[c, d]가 겹치는 부분의 길이는 max⁡(0,min⁡(b,d)−max⁡(a,c))\max(0, \min(b, d) - \max(a, c))이다.

구간은 무겁기 때문에 기계를 사용하여 옮기는데, 한 번 옮길 때마다 (이동 거리) ×\times (구간 길이) 만큼의 전기료가 나온다. 즉, jj번 레이저 빔이 오기 전에 사용하는 전기료는 ∑_i=1N(r_i−l_i)∣x_ij∣\sum\_{i=1}^{N} (r\_i-l\_i)|x\_{ij}|이다.

각 레이저 빔이 지나간 후에 당신은 옮겼던 모든 구간을 다시 원래 위치로 되돌려 놓는다. 옮길 때와 돌려놓을 때 모두 똑같이 비용이 발생함을 유의하라.

당신은 각 레이저 빔마다 최소한의 전기료를 사용하여 모든 구간을 안전하게 관리하려고 한다. 이때의 비용을 계산하여 보자.

입력

첫째 줄에 구간의 개수 NN과 예고된 레이저 폭격의 수 QQ가 주어진다. (1≤N,Q≤250,0001 \le N, Q \le 250\\,000)

이후 NN개의 줄에 걸쳐, 그 중 ii번째 줄에는 ii번째 보관된 구간의 양 끝점 l_il\_i와 r_ir\_i가 주어진다. (1≤l_i<r_i≤1,000,0001 \le l\_i < r\_i \le 1\\,000\\,000)

이후 QQ개의 줄에 걸쳐, 그 중 jj번째 줄에는 jj번째 레이저 빔 피해 범위의 양 끝점 s_js\_j와 e_je\_j가 주어진다. (1≤s_j<e_j≤1,000,0001 \le s\_j < e\_j \le 1\\,000\\,000)

입력으로 들어오는 모든 수는 정수이다.

출력

각 레이저 빔에 대해, 현재 상태에서 모든 구간을 안전한 위치로 옮겼다가 돌려놓기 위해 필요한 최소 전기료를 QQ개의 줄에 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    2 2
    1 5
    4 8
    3 5
    8 9
    
    예상 출력
    24
    0