#include<bits/stdc++.h>
using namespace std;
#define N 1010000
#define ll long long
#define lb long double
#define P pair<ll,ll>
#define LL long long
//#define P 1000000007ll
//priority_queue<int >que;
//priority_queue<int,vector<int>,greater<int> >que;
//upper_bound(nums.begin(), nums.end(), value);
ll a[N],b[N],ans[N];
int n,cnt;
void solve(){
cin>>n;
for(int i=1;i<n;i++){
cin>>a[i];
b[i]=b[i-1]^a[i];
}
for(int i=0;i<=20;i++){
cnt=0;
for(int j=1;j<n;j++)
if((b[j]>>i)& 1) cnt++;
for(int j=0;j<n;j++)
if((j>>i)& 1) cnt--;
if(cnt!=0) ans[1]+=(1<<i);
}
for(int i=2;i<=n;i++){
ans[i]=a[i-1]^ans[i-1];
}
for(int i=1;i<=n;i++){
cout<<ans[i]<<" ";
}
}
int main()
{
int T = 1;
for (int t = 1; t <= T; t++)
solve();
return 0;
}
Educational Codeforces Round 157 (Rated for Div. 2)D. XOR Construction
最新推荐文章于 2024-10-01 23:05:47 发布