思路:差分
#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
using namespace std;
#define endl "\n"
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define per(i,n,a) for (int i=n;i>=a;i--)
#define all(x) (x).begin(),(x).end()
#define fir first
#define sec second
typedef long long ll;
typedef pair<int,int> PII;
mt19937 mrand(random_device{}());
int rnd(int x) { return mrand() % x;}
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
int n, a[200010];
inline void solve(){
int v[200010], d[200010];
memset(v, 0, sizeof(v));
memset(d, 0, sizeof(d)); // 差分数组
cin >> n;
rep(i, 1, n){
cin >> a[i];
}
rep(i, 1, n){
if (a[i] >= i){ // 全部都变成1
// l = 1, r = i
d[1]++;
d[i + 1]--;
}
else{ // 区间修改
// l = i - a[i] + 1, r = i
d[i - a[i] + 1]++;
d[i + 1]--;
}
}
rep(i, 1, n){ // 做前缀和
v[i] = v[i - 1] + d[i];
}
rep(i, 1, n){ // 只要 >= 1,就都是1
if (v[i] > 0){
v[i] = 1;
}
cout << v[i] << " \n"[i == n];
}
return;
}
int main(){
ios;
int T;
cin >> T;
while (T--){
solve();
}
return 0;
}