can anyone explain our approach to this problem??
I used the following approach-
for every bit position [0,10), check the value in the final answer if starting bit is 0 or 1
- both 1 which means or with is the deciding factor (let us say we have 11 and 100 as our binary numbers, in order to convert 11->11 and 100->101 we do bitwise or with 1)
- both 0 which means and with 0 is the deciding factor
- the bit that was 1 is 0 and the bit that was 0 is 1, it means xor with 1 is the deciding factor
- the bits don’t change, now this is only possible when we do and with 1
So using these, we can find the values with which we can-
- xor: just set the bits where we need to flip the values
- and: first set all bits and then unset the ones where and 0 (pt 2) is the deciding factor
- or: set all bits where answer is 1
now print in following order-
and (can interchange these 2)
We are using 3 moves only.
didn’t get the last three points
1. xor: just set the bits where we need to flip the values 2. and: first set all bits and then unset the ones where and 0 (pt 2) is the deciding factor 3. or: set all bits where answer is 1
at any index, the bit value will either be 0 or 1 in the starting right?
now finally, bit value can be 00,11,01 or 10
now our original combination is 01(for any bit) and final combination is any 1 of the 4.
01->00 the value has been & with 0 (0&0=0, 0&1=0)
01->01 no change, value has been & with 1
01->11, both ones, definitely brough by bitwise or | with 1
01->10, xor with 1 has been done
u just need to see which operation has been done on which bit