Why my code is facing an run time error can you please guide me in this

My issue

My code

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--){
	    int n;
	    cin>>n;
	    string s;
	    cin>>s;
	    int num=1;
	    long int x=0;
	    for(long int i=s.length()-1;i>=0;i--){
	        x=x+num*(s[i]-'0');
	        num=num*2;
	    }
	    num=1;
	    int a=0;
	    long int xo=0;
	    int ans=0;
	    while(x>=num){
	        
	        long int val=x^(x/num);
	        if(val>xo){
	            xo=val;
	            ans=a;
	        }
	        a++;
	        num=num*2;
	    }
    if(x>xo)
    ans=a;
    cout<<ans<<endl;
	}
	return 0;
}

Problem Link: SINGLEOP1 Problem - CodeChef