1 line soln for Today Div 2 C

Revision en4, by Swayam78, 2024-09-30 10:39:15

Here , u just have to take a = c^d ,Then check if it do satisy the condition or not , if it doesn't then cout -1 , else cout a.

Proof: In my solution (283677605) you only ever add a bit to a if exactly one of c and d contains that bit, otherwise you either get a contradiction on the spot, or you don't add the bit and move on

why is that If you add that bit to a then (looking just at that bit) a | b=1 and so 1−c=d . If you don't add that bit, then a & c=0 and so b=d . If neither b=d nor c ^ d=1 holds then you can't construct such a . Note that carrying over never happens throughout the process.

. You can skip the latter cases and check if that value of a works, at the end. This is exactly equivalent to setting a=c ^ d and checking if it works.

283646208

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English Swayam78 2024-09-30 10:39:15 625
en3 English Swayam78 2024-09-29 22:48:24 16
en2 English Swayam78 2024-09-29 22:45:52 30 Tiny change: ' for same.' -> ' for same.\n\n\n\n[submission:283646208]'
en1 English Swayam78 2024-09-29 22:36:28 200 Initial revision (published)