만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

선분 제거

시간 제한4초메모리 제한2048 MB

요약
좌표 1부터 x까지의 구간들을 골라 제거할 때 얻을 수 있는 최대 점수를 구합니다. 구간을 제거하면 그 구간만 덮고 있던 점의 개수에 가중치를 곱한 값을 얻고, 페널티를 뺍니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 세그먼트 트리, 구간
정답자
아직 제출이 없습니다

문제

좌표축 위에 점 1,2,…,x1, 2, \ldots, x가 있다. 시작점과 끝점이 모두 이 점들 위에 있는 선분들이 주어진다. 각 선분에는 가중치 wiw_i와 페널티 pip_i가 정해져 있다.

처음 점수는 00이다. 각 이동에서는 주어진 선분 중 하나를 골라 집합에서 제거한다. 이때 점수는 그 선분의 페널티만큼 줄어든다. 대신 점수는 선분의 가중치에 곱한 값만큼 늘어난다. 곱하는 값은 이 순간 그 선분이 집합에서 유일하게 덮고 있는 정수 좌표 점의 개수이다. 선분은 양 끝점도 덮는 것으로 본다.

이동마다 얻은 점수의 합이 총점이다. 얻을 수 있는 총점의 최댓값을 구하라.

입력

첫 줄에 테스트 케이스의 개수 tt (1≤t≤2⋅1051 \le t \le 2 \cdot 10^5)가 주어진다. 이후 테스트 케이스들이 이어진다.

각 테스트 케이스의 첫 줄에는 선분의 개수 nn (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5)과 최대 좌표 xx (1≤x≤5⋅1051 \le x \le 5 \cdot 10^5)가 주어진다.

다음 nn개의 줄에는 선분 정보가 주어진다. 각 줄에는 정수 네 개가 있으며, 순서대로 선분의 시작점 ℓi\ell_i, 끝점 rir_i (1≤ℓi≤ri≤x1 \le \ell_i \le r_i \le x), 가중치 wiw_i (1≤wi≤1091 \le w_i \le 10^9), 페널티 pip_i (1≤pi≤1091 \le p_i \le 10^9)이다.

모든 테스트 케이스에서 nn의 합은 2⋅1052 \cdot 10^5를 넘지 않는다. xx의 합은 5⋅1055 \cdot 10^5를 넘지 않는다.

출력

각 테스트 케이스마다 얻을 수 있는 최대 점수를 한 줄에 정수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    2
    3 8
    3 7 3 2
    5 8 2 1
    1 3 2 2
    2 5
    1 3 2 7
    3 5 3 4
    
    예상 출력
    16
    2