Help me in solving ARRREM problem

My issue

tell me what is the problem in my above approach

My code

#include <bits/stdc++.h>
using namespace std;
typedef long long int lwi;

int main() {
	// your code goes here
	lwi t;
	cin>>t;
	while(t--){
	    lwi n;
	    cin>>n;
	    lwi arr[n];
	    for(lwi i=0;i<n;i++){
	        cin>>arr[i];
	    }
	    sort(arr,arr+n);
	    lwi k=log2(arr[n-1]);
	    lwi sum=0,j;
	    for(j=0;j<k;j++){
    	    lwi m=0;
    	    for(lwi i=0;i<n;i++){
    	        if(arr[i]%2==1){
    	            m=1;
    	            break;
    	        }
    	    }
    	    if(m==1){
    	        for(lwi i=0;i<n;i++){
    	            arr[i]/=2;
    	        }
    	    }else{
    	        break;
    	    }
	    }
	    do{
	        lwi m=1;
	        for(lwi i=0;i<n;i++){
	            arr[i]/=2;
	            if(arr[i]%2==1){
	                sum++;
	                arr[i]=0;
	            }
	        }
	    }while(j<k);
	    cout<<sum<<endl;
	}
	

}

Problem Link: Array Removal Practice Coding Problem

@skull_frost_08
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--)
	{
	    long long int n;
	    cin>>n;
	    long long int a[n];
	    long long int sm=0,p=1;
	    for(int i=0;i<n;i++)
	    {
	        cin>>a[i];
	        sm=sm|a[i];
	    }
	    while(p<=sm)
	    {
	        long long ch=p&sm;
	        if(ch!=p)
	        {
	            break;
	        }
	        else
	        p=p*2;
	    }
	    int ans=0;
	    for(int i=0;i<n;i++)
	    {
	        if(a[i]>=p)
	        ans++;
	    }
	    cout<<ans<<endl;
	}
	return 0;
}

you can also refer to my code

   int t;cin>>t;
	while(t--){
	    int n;cin>>n;
	    int a[n];
	    for(int i=0;i<n;i++)cin>>a[i];
	    int ans=n;
	    for(int i=0;i<32;i++){
	        int b=0;
	        int c=pow(2,i);
	        int cnt=0;
	        for(int j=0;j<n;j++){
	            if(a[j]<c)b|=a[j];
	            else cnt++;
	        }
	        if(b==c-1)ans=min(ans,cnt);
	    }
	    cout<<ans<<endl;
	    
	    
	}