//使用函式編寫爆炸規則
#include<iostream>
using namespace std;
void boom(int a[], int m, int n){
if(m<n && m>=0){
if(a[m] == 1){
a[m] = 0;
}else if(a[m] == 2 ){
a[m] = 0;
boom(a,m+1,n);
boom(a,m-1,n);
}else if(a[m]!= 0){
int t=a[m];
a[m] = 0; //注意!!!!!!!!!!如果這邊不先將a[m]設成0就進入boom函式,就會出現無限迴圈!!!
boom(a,m+t,n);
boom(a,m+t*2,n);
boom(a,m-t,n);
boom(a,m-t*2,n);
/*
無限迴圈舉例:
6
1 2 3 1 1 3
1
該測資中的兩個3如果沒有先歸零
就會一直在兩個3的連鎖引爆中爆來爆去
*/
}else{
a[m] = 0;
}
}
}
int main(void){
int n,m;
cin>>n;
int a[100005]={ };
for(int k=0;k<n;k++)
{
cin>>a[k];
}
cin>>m;
boom(a,m,n);
for(int k=0;k<n;k++)
{
cout<<a[k]<<" ";
}
cout<<endl;
return 0;
}