class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int AB = 0;
int N = nums.size();
for(int i=0;i<N;i++) AB ^= nums[i];
int leftone = ((AB^(AB-1))+1)>>1;
int A = 0;
for(int i=0;i<N;i++){
if(nums[i]&leftone) A^=nums[i];
}
int B = AB^A;
vector<int> ans = {A,B};
return ans;
}
};