并没有理解这样贪有啥问题,救助大佬 /kel
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 3e5 + 10;
int T, n, k, a[MAXN], x[MAXN], p[MAXN]; ll sum; bool f;
int main() {
for (scanf("%d", &T); T--;) {
scanf("%d%d", &n, &k), sum = 0, f = 1;
for (int i = 1; i <= n; i++) scanf("%d", &a[i]), p[i] = i;
for (int i = 1; i <= n; i++) scanf("%d", &x[i]), x[i] = abs(x[i]);
sort(p + 1, p + n + 1, [](const int &i, const int &j) { return x[i] < x[j]; });
for (int i = 1; i <= n; i++) if ((ll)k * x[i] < (sum += a[i])) { f = 0; break; }
puts(f ? "YES" : "NO");
}
}