Не пролази 5. пример са „папира“

Pitanje ili opis problema

Не може код да ми прође 5. пример јер не знам како да имплементирам кад је низ од више од 2 нуле - стене заредом.

Мој код:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
int h,n,x;
cin >> h >> n;
int niz[n];
for(int i=1; i<=n; i++) niz[i]=1;

for(int i=1; i<=h; i++){
    for(int j=1; j<=n; j++){
        cin>>x;
        if(x==0 && j!=1 && j!=n){
        if(niz[j]%2==1){
            if(i%2==1){
                niz[j-1]+=niz[j]/2+1;
                niz[j+1]+=niz[j]/2;
            }
            else if(i%2==0){
                niz[j+1]+=niz[j]/2+1;
                niz[j-1]+=niz[j]/2;
            }
        }else{
        niz[j+1]+=niz[j]/2;
        niz[j-1]+=niz[j]/2;
        }
        niz[j]=0;
        }
        if(x==0 && j==1 && i>1){
            niz[2]+=niz[1];
            niz[1]=0;
        }
        if(x==0 && j==1 && i==1){
            niz[2]++;
            niz[1]=0;
        }
        if(x==0 && j==n && i>1){
            niz[j-1]+=niz[j];
            niz[j]=0;
        }
        if(x==0 && j==n && i==1){
            niz[j-1]++;
            niz[j]=0;
        }
    }
}
for(int i=1; i<=n; i++) cout<<niz[i]<<" ";
return 0;
}

Link ka zadatku ili odgovarajućoj stranici

https://drive.google.com/file/d/18GqVZALF90uDjU4_AxKlIbnD-_qXHTdG/view?usp=sharing - текст задатка.

Напомена: 2019/2020. 1. круг квалификација такмичења из програмирања, 3. задатак.