만드는 중입니다

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

벌목

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

요약
수직선 위에 나무 N그루가 있고, 각 구간에 최소 t그루가 남아야 할 때 베어낼 수 있는 나무의 최대 개수를 구합니다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 이분 탐색, 유니온 파인드
정답자
아직 제출이 없습니다

문제

Farmer John은 농장을 넓히고 있습니다. 수직선 위에 놓인 NN그루의 나무(1≤N≤1051 \le N \le 10^5)로 이루어진 Red-Black Forest에서 이상적인 장소를 찾았습니다. ii번째 나무의 위치는 xix_i(−109≤xi≤109-10^9 \le x_i \le 10^9)입니다.

환경 보호법에 따라 농장을 만들기 위해 베어 낼 수 있는 나무가 제한됩니다. 제한 조건은 KK개(1≤K≤1051 \le K \le 10^5)이며, 각 조건은 구간 [li,ri][l_i, r_i]의 양 끝점을 포함해서 항상 최소 tit_i그루(1≤ti≤N1 \le t_i \le N)의 나무가 있어야 한다는 뜻입니다(−109≤li≤ri≤109-10^9 \le l_i \le r_i \le 10^9). Red-Black Forest는 처음부터 이 조건들을 만족한다고 보장됩니다.

Farmer John은 농장을 최대한 크게 만들고 싶어 합니다. 모든 조건을 만족하면서 벨 수 있는 나무의 최대 개수를 구해 주세요.

입력

입력은 TT(1≤T≤101 \le T \le 10)개의 독립된 테스트 케이스로 구성됩니다. 한 입력 안에서 모든 NN의 합과 모든 KK의 합은 각각 3⋅1053 \cdot 10^5를 넘지 않습니다.

입력의 첫 줄에는 TT가 주어집니다. 각 테스트 케이스의 형식은 다음과 같습니다.

첫 줄에는 정수 NN과 KK가 주어집니다.

다음 줄에는 NN개의 정수 x1,…,xNx_1, \dots, x_N이 주어집니다.

이어지는 KK개의 줄에는 공백으로 구분된 세 정수 lil_i, rir_i, tit_i가 각각 주어집니다.

출력

각 테스트 케이스마다, Farmer John이 벨 수 있는 나무의 최대 개수를 나타내는 정수를 한 줄에 출력합니다.

힌트

첫 번째 테스트 케이스에서 Farmer John은 처음 44그루를 벨 수 있고, 위치 xi=2,6,7x_i = 2, 6, 7의 나무를 남기면 조건을 만족합니다.

두 번째 테스트 케이스에서는 추가된 조건이 벨 수 있는 나무에 영향을 주지 않으므로, 같은 나무를 베면 두 조건을 모두 만족합니다.

세 번째 테스트 케이스에서는 나무가 처음에 77그루 있는데, 두 번째 조건이 최소 44그루를 남기도록 요구하므로 Farmer John은 최대 33그루까지만 벨 수 있습니다.

예제1

  1. 예제 1

    입력
    3
    7 1
    8 4 10 1 2 6 7
    2 9 3
    7 2
    8 4 10 1 2 6 7
    2 9 3
    1 10 1
    7 2
    8 4 10 1 2 6 7
    2 9 3
    1 10 4
    
    예상 출력
    4
    4
    3