#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 200005;
int T, n, K, c[N], ans[N], tot;
struct Node{ int id, val; };
Node stk[N];
int main(){
int i, j, t, res;
scanf("%d", &T);
while(T--){
scanf("%d", &n);
for(i = 1; i <= n; i++){
scanf("%d", &c[i]);
while(tot && stk[tot].val >= c[i]) tot--;
stk[++tot] = {i, c[i]};
}
scanf("%d", &K); j = 1;
if(K >= stk[j].val){
while(j+1 <= tot && K / stk[j].val == K / stk[j+1].val) j++;
t = j+1, res = K / stk[j].val, K -= res * stk[j].val;
for(int k = 1; k <= stk[j].id; k++) ans[k] = res;
while(t <= tot && K){
if(K >= stk[t].val - stk[j].val){
for(int k = stk[j].id+1; k <= stk[t].id; k++) ans[k] += K / (stk[t].val - stk[j].val);
K %= stk[t].val - stk[j].val, j = t;
}
t++;
}
}
for(int k = 1; k <= n; k++){
printf("%d ", ans[k]);
ans[k] = 0;
} printf("\n");
tot = 0;
}
return 0;
}
错在答案字典序超了,不知道哪里错了,求助qwq