G. Olympiad Training
binary search; data structures; dp; flows; geometry; implementation; sortings
Anton decided to get ready for an Olympiad in Informatics. Ilya prepared \(n\) tasks for him to solve. It is possible to submit the solution for the \(i\)-th task in the first \(d_{i}\) days only. Anton cannot solve more than one task a day. Ilya estimated the usefulness of the \(i\)-th tasks as \(r_{i}\) and divided the tasks into three topics, the topic of the \(i\)-th task is \(type_{i}\).Anton wants to solve exactly \(a\) tasks on the first topic, \(b\) tasks on the second topic and \(c\) tasks on the third topic. Tell Anton if it is possible to do so, and if it is, calculate the maximum total usefulness of the tasks he may solve.
The first line of input contains a single integer \(t\) (\(1 \le t \le 10^4\)) — the number of test cases.The first line of each test case contains four integers \(n, a, b, c\) (\(1 \le n \le 10^5\), \(0 \le a, b, c \le n\)).The following \(n\) lines contain three integers each — \(r_i, type_i, d_i\) (\(0 \le r_i \le 10^{9}\), \(1 \le type_i \le 3\), \(1 \le d_i \le n\)).The sum of \(n\) over all test cases does not exceed \(10^5\).
For each test case print \(-1\) if Anton cannot reach his goal; otherwise, print the maximum usefulness of the tasks he will solve.
In the first test case from the sample test Anton can solve tasks \(2\) and \(4\).In the second test case from the sample test it is impossible to fulfill Anton's wish.In the third test case from the sample test it is optimal to solve tasks \(2\), \(3\) and \(4\).In the last test case from the sample test it is optimal to solve tasks \(1\), \(2\) and \(4\).