rt
#include<bits/stdc++.h>
using namespace std;
const int maxn = 3e5+5;
int t,n,cnt;
struct sur{
bool alve,chek;
}alv[maxn];
struct node{
int lst,nxt;
int atc,die;
}mon[maxn];
void org(){
mon[1].lst = n;
mon[1].nxt = 2;
mon[n].lst = n-1;
mon[n].nxt = 1;
for(int i = 2;i<n;i++){
mon[i].lst = i-1;
mon[i].nxt = i+1;
}
}
void ext(int i){
mon[mon[i].lst].nxt = mon[i].nxt;
mon[mon[i].nxt].lst = mon[i].lst;
}
signed main(){
cin>>t;
for(int grp = 1;grp<=t;grp++){
cin>>n;
memset(alv,sizeof alv,1);
org();
for(int i = 1;i<=n;i++){
cin>>mon[i].atc;
}
for(int i = 1;i<=n;i++){
cin>>mon[i].die;
}
for(int turn = 1;turn<=n;turn++){
cnt = 0;
for(int i = 1;i<=n;i++){
if(!alv[i].alve)continue;
int fgt = mon[mon[i].lst].atc+mon[mon[i].nxt].atc;
if(fgt>mon[i].die){
alv[i].alve = false;
alv[i].chek = true;
cnt++;
}
}
cout<<cnt<<" ";
for(int i = 1;i<=n;i++)if(alv[i].alve==false&&alv[i].chek){
alv[i].chek = false;
ext(i);
}
}
cout<<endl;
}
}