Untitled
unknown
plain_text
a year ago
959 B
7
Indexable
int n; cin>>n; int b[n-1]; for (int i=0;i<n-1;++i)cin>>b[i]; int a[n]; a[0]=b[0]; for (int i=1;i<n;++i) { a[i]=0; int prv=a[i-1]; for (int k=29;k>=0;k--) { int x=((1<<k)&b[i-1]); int y=((1<<k)&prv); if (x && y) { a[i]+=(1<<k); continue; } if (y==0 && x) { cout<<-1<<endl; return; } if (y==0 && x==0) { a[i]+=(1<<k); } else if (x==0 && y) { if (i-2>=0) { int z=(b[i-2]&(1<<k)); if (z==0) { a[i - 1] ^= (1 << k); a[i] += (1 << k); } } } } } for (int i=0;i<n;++i)cout<<a[i]<<' '; cout<<endl;
Editor is loading...
Leave a Comment