/* * a.cpp * * Created on: 2013-10-20 * Author: wangzhu */ #include<cstdio> #include<iostream> using namespace std; #define NMAX 1010 int arr[NMAX]; //获取n的最末位的1 int find(int n) { return n & (n ^ (n - 1)); } int main() { freopen("data.in", "r", stdin); int n,num1,num2,numTemp1,numTemp2; while(~scanf("%d",&n)) { for(int i = 0;i < n;i++) { scanf("%d",arr + i); } numTemp1 = 0; for(int i = 0;i < n;i++) { numTemp1 ^= arr[i]; } numTemp2 = find(numTemp1); num1 = 0,num2 = 0; for(int i = 0;i <n;i++) { if(numTemp2&arr[i]) { num1 ^= arr[i]; } else { num2 ^= arr[i]; } } if(num1 > num2) { printf("%d %d\n",num2,num1); } else { printf("%d %d\n",num1,num2); } } return 0; }