#include<bits/stdc++.h> 
using namespace std;
unsigned long long a,b;//2的64次方 要用ull不然会爆
signed main(){
   cin>>a>>b;
   //思路:根据x xor y == y - x解方程组
   //x xor y=y-x
   //a=x+y
   //b=y-x
   //a+b=2y
   //y=a+b/2
   //x=a-y
   if((a+b)%2!=0){//x+y<y-x 2x<0 不存在 (a+b)%2!=0 证明(a+b)/2非整数
      cout<<"-1";
      return 0;
   }
   cout<<a-((a+b)/2)<<" "<<(a+b)/2;//输出xy   
   return 0; 
}


1 comments

  • @ 2025-1-7 13:48:47

    至于这个x^y为什么等于y-x 这个我也不知道aaa

    反正记住这个结论就对了

    • 1

    Information

    ID
    952
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    8
    Tags
    (None)
    # Submissions
    176
    Accepted
    27
    Uploaded By