Cộng và XOR

Đề bài

Mô tả

Phép XOR bit (hay phép cộng nhị phân theo modulo 2) là phép toán hai ngôi, trong đó mỗi bit của kết quả bằng 1 khi và chỉ khi hai bit ở cùng vị trí của hai toán hạng khác nhau.

Ví dụ, với X=109=11011012 và Y=41=1010012 thì X⊕Y=68=10001002.

Cho hai số nguyên không âm A và B. Hãy tìm hai số nguyên không âm X và Y thỏa mãn đồng thời:

  • A=X+Y
  • B=X⊕Y, với ⊕ là phép XOR bit
  • X là nhỏ nhất trong tất cả các cặp thỏa mãn hai điều kiện trên

Nếu không tồn tại cặp (X,Y) nào thỏa mãn, in ra −1.

Dữ liệu vào

  • Dòng đầu chứa số nguyên A.
  • Dòng thứ hai chứa số nguyên B.

Dữ liệu ra

In ra hai số nguyên không âm X và Y cách nhau bởi dấu cách, hoặc in ra −1 nếu không có đáp án.

Ràng buộc

  • 0≤A,B≤264−1

Ví dụ

Input Output Giải thích
142
76
33 109 33+109=142 và 33⊕109=76. Cặp (49,93) cũng thỏa mãn nhưng 33<49 nên đáp án là 33.
1639
1176
-1 A và B khác tính chẵn lẻ nên không tồn tại cặp (X,Y) nào.
104066
104066
0 104066 Khi A=B ta luôn có thể chọn X=0, Y=A.
6
2
-1 A−B=4 là số chẵn, nhưng vẫn không có cặp (X,Y) nào thỏa mãn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0