만드는 중입니다

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

밀크 캔디

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

요약
구간 합을 알려주는 힌트마다 비용이 있고, NPC별로 정확히 k_i개를 사야 합니다. 모든 x를 알아내는 최소 비용을 구하거나 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 9점

유형
행렬, 조합론, 그리디, 비트 연산
정답자
아직 제출이 없습니다

문제

Calabash는 컴퓨터로 RPG 게임을 하고 있습니다. 값을 모르는 수 nn개 x1,x2,…,xnx_1, x_2, \ldots, x_n과 힌트를 파는 NPC mm명이 있습니다. ii번째 NPC는 힌트 cic_i개를 팝니다. 각 힌트에는 정수 ljl_j, rjr_j, wjw_j가 있습니다. wjw_j 코인을 내고 이 힌트를 사면 xlj+xlj+1+⋯+xrjx_{l_j} + x_{l_j+1} + \cdots + x_{r_j}의 값을 알 수 있습니다.

목표는 nn개의 수를 모두 알아내는 것입니다. Calabash는 힌트를 최적으로 고르지만, NPC는 욕심이 많습니다. Calabash는 ii번째 NPC에게서 정확히 kik_i개의 힌트를 사야 합니다. 같은 힌트는 두 번 살 수 없습니다.

모든 수를 알아내기 위해 Calabash가 내야 하는 코인의 최솟값을 구하세요. 불가능하면 그 사실을 판단하세요.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤101 \le T \le 10)가 주어집니다.

각 테스트 케이스는 nn과 mm (1≤n,m≤801 \le n, m \le 80)으로 시작합니다. 이후 NPC마다 cic_i와 kik_i (1≤ki≤ci1 \le k_i \le c_i)가 적힌 줄이 있고, 이어서 cic_i개의 줄에 ljl_j, rjr_j, wjw_j (1≤lj≤rj≤n1 \le l_j \le r_j \le n, 1≤wj≤1061 \le w_j \le 10^6)가 주어집니다.

한 테스트 케이스에서 모든 cic_i의 합은 80 이하입니다.

출력

각 테스트 케이스마다 최소 코인 수를 한 줄에 출력하세요. 해가 없으면 −1-1을 출력하세요.

예제1

  1. 예제 1

    입력
    2
    2 2
    1 1
    1 2 1
    3 2
    1 1 10
    2 2 100
    1 2 1000
    2 2
    1 1
    1 1 1
    1 1
    1 1 2
    
    예상 출력
    111
    -1