#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n, l, q;
double v, a[N], sum[N];
bool cmp(int x, int y) { return x > y; }
int main() {
cin >> n >> l >> v;
for (int i = 1; i <= n; i++) {
scanf("%lf", &a[i]);
}
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; i++) a[i] = a[i] / v * 1.0, sum[i] = sum[i - 1] + a[i];
cin >> q;
double t = l / v * 1.0;
while (q--) {
double ti;
cin >> ti;
if (t > ti) {
puts("0");
continue;
}
ti -= t;
if (ti >= sum[n]) {
puts("-1");
continue;
}
int l = 1, r = n;
while (l < r) {
int mid = l + r >> 1;
if (sum[mid] >= ti) r = mid;
else l = mid + 1;
}
cout << l << endl;
}
}
代码如上,代码输出和样例不符。(本地和IDE都测了)