#include #define N 100100 using namespace std; int n,a[N],ans; void dfs(int pos,int x,int dep){ if(pos>1&&x==0) return; if(pos>n){ans=max(ans,dep);return;} int newx; if(a[pos]==0) newx=0; if(a[pos]==1||a[pos]==2) newx=15; if(a[pos]==3||x==4) newx=x-1; if(a[pos]==5) newx=x; if(a[pos]==6) newx=x+1; if(a[pos]==7) newx=x+3; dfs(pos*2,newx,dep+1),dfs(pos*2+1,newx,dep+1); } int main(){ freopen("traversal.in","r",stdin),freopen("traversal.out","w",stdout); cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; dfs(1,0,0); cout<