#include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while (T--) { int N; ll K; cin >> N >> K; vector A(N), B(N), C(N), D(N); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < N; i++) cin >> B[i]; for (int i = 0; i < N; i++) cin >> C[i]; for (int i = 0; i < N; i++) cin >> D[i]; multiset buys; ll gold = 0; for (int i = 0; i < N; i++) { // Add buys for (ll j = 0; j < B[i]; j++) { buys.insert(A[i]); if ((ll)buys.size() > K) { auto it = prev(buys.end()); buys.erase(it); } } // Sell ll can_sell = min((ll)buys.size(), D[i]); while (can_sell--) { auto it = buys.begin(); ll cost = *it; buys.erase(it); gold += (C[i] - cost); } } cout << gold << '\n'; } }