What is wrong in this answer to question ? #DOR

#include<iostream>
#include <vector>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t!=0)
	{
		long long int a,b;
		cin>>a>>b;
		vector <long long int> v,v1;
		while (a > 0) 
		{ 
           v.push_back( a%2 ) ; 
           a = a / 2;  
        } 
   		while (b > 0) 
		{ 
           v1.push_back( b%2 ) ; 
           b = b / 2;  
        } 
        while(v1.size()!=v.size())
        {
        	v.push_back(0);
        }
        reverse(v.begin(),v.end());
        reverse(v1.begin(),v1.end());
        for (long long int i = 0; i < v1.size() ; ++i)
        {
        	if ( v[i]+v1[i] == 2)
        		v1[i]=1;
        	else if ( v[i]+v1[i] == 1)
        		v1[i]=1;
        	else if ( v[i]+v1[i] == 0)
        		v1[i]=0;
        }
        long long sum=0;
        for (long long int i = (v1.size()-1); i >= 0; i--)
        {
        	sum+=v1[i]*(long long int)pow(2,v1.size()-1-i);
        }
        cout<<sum<<endl; 

		t--;
	}
	return 0;
}