题目 差分数组

题目 差分数组

Acwing 3729. 改变数组元素

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f

int b[200010];
int n;

void rangeadd(int l,int r){
b[l]++;
b[r+1]--;
return ;
}

int main(){
int t;
cin>>t;
while(t--){
memset(b,0,sizeof(b));
scanf("%d",&n);
int len=0;
for(int i=1; i<=n; i++){
len++;
int a;
scanf("%d",&a);
int l=((len-a+1)>0) ? (len-a+1) : 1 ;
rangeadd(l,len);
}
int cur=0;
for(int i=1;i<=len;i++){
cur+=b[i];
if(cur>0){
printf("1 ");
}
else{
printf("0 ");
}
}
printf("\n");
}
return 0;
}