Help me in solving BOX95 problem

My issue

can any one tell me what is wrong with my code

My code

#include <bits/stdc++.h>
using namespace std;

int main() {
	int t,n;
	cin>>t;
	while(t--){
	    cin>>n;
	    int arr[n];
	    int arr2[64]={0};
	    for(int i=0;i<n;i++){
	       cin>>arr[i]; 
	    }
	    for(int i=0;i<n;i++){
	       for(int j=63;j>=0;j--){
	           if(arr[i] &(1<<(j))!=0){
	              arr2[j]++; 
	              break;
	           }
	       }
	    }
	    //int msb;
	    for(int j=63;j>=0;j--){
	        if(arr2[j]>0){
	            cout<<arr2[j]+1 /2<<endl;
	            break;
	        }
	    }
	    //cout<<msb+1/2<<endl;
	}

}

Problem Link: Boxes Practice Coding Problem - CodeChef

@rachit7_7
u have to take care of integer overflow .
i have corrected in your code

#include <bits/stdc++.h>
using namespace std;

int main() {
	int t,n;
	cin>>t;
	while(t--){
	    cin>>n;
	    long long int arr[n];
	    long long int arr2[64]={0};
	    for(int i=0;i<n;i++){
	       cin>>arr[i]; 
	    }
	    for(int i=0;i<n;i++){
	       for(long long int j=63;j>=0;j--){
	           long long int val=(long long int)1<<j;
	          long long int val1=arr[i]&val;
	           if(val1!=0){
	              arr2[j]++; 
	           }
	       }
	    }
	    //int msb;
	 
	 //    cout<<endl;
	    for(int j=63;j>=0;j--){
	        if(arr2[j]>0){
	           // cout<<"y"<<endl;
	            cout<<(arr2[j]+1)/2<<endl;
	            break;
	        }
	    }
	    //cout<<msb+1/2<<endl;
	}

}