http://www.geeksforgeeks.org/find-the-two-numbers-with-odd-occurences-in-an-unsorted-array/
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <queue> 5 #include <stack> 6 #include <string> 7 #include <fstream> 8 #include <map> 9 using namespace std; 10 11 void printtwoodd(int arr[], int n) { 12 int x = arr[0]; 13 for (int i = 1; i < n; i++) x ^= arr[i]; 14 x &= ~(x-1); 15 int ans1, ans2; 16 ans1 = ans2 = 0; 17 for (int i = 0; i < n; i++) { 18 if (arr[i] & x) ans1 ^= arr[i]; 19 else ans2 ^= arr[i]; 20 } 21 cout << ans1 << " " << ans2 << endl; 22 } 23 24 int main() { 25 int arr[8] = {4, 2, 4, 5, 2, 3, 3, 1}; 26 printtwoodd(arr, 8); 27 return 0; 28 }