Help me in solving ZOOZ problem

My issue

Can anyone help me why my approach is wrong???

My code

#include <stdio.h>

int main(void) {
	int t;
	scanf("%d",&t);
	while(t--){
	    int N;
	    scanf("%d",&N);
	    int arr[N];
	    if(N%2!=0){
	        for(int i=0;i<N;i++){
	        if(i%2==0){
	            arr[i]=0;
	        }else{
	            arr[i]=1;
	        }}}
	   
	   else{
	       arr[0]=1;
	       arr[1]=0;
	       arr[2]=0;
	       arr[3]=1;
	       for(int i=4;i<N;i++){
	        if(i%2==0){
	            arr[i]=0;
	        }else{
	            arr[i]=1;
	        }}
	   }     
	   
	   for(int i=0;i<N;i++){
	       printf("%d",arr[i]);
	   }
	   printf("\n");
	   
	    
	    
	}

}


Problem Link: Zero Ones Equal One Zeros Practice Coding Problem - CodeChef

@aanvikshikrv
nor n=6 your code is printing 100101 which is wrong because it contains “4” 10 as subsequence and “5” 01 as subsequence .
plzz refer my c++ code for better understanding of the logic

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
	    int n;
	    cin>>n;
	    cout<<1;
	    n-=2;
	    while(n--)
	    cout<<0;
	    cout<<1;
	    cout<<endl;
	}
	return 0;
}