#include <iostream> #include <vector> #include <string> #include <bits/stdc++.h> using namespace std; string str,str1,str2,s1; string brev(string b){ string s=""; for(int i=3;i>=0;i--){ s+=b[i]; } return s; } int main() { cin >>str1>>str2; str=str1+str2; int len=str.size(); str1=""; str2=""; for(int i=0;i<str.size();i+=2){ str1+=str[i]; } for(int i=1;i<str.size();i+=2){ str2+=str[i]; } sort(str1.begin(),str1.end()); sort(str2.begin(),str2.end()); int j=0; for(int i=0;i<str.size();i+=2){ str[i]=str1[j];j++; } j=0; for(int i=1;i<str.size();i+=2){ str[i]=str2[j];j++; } int coun=0; for(int i=0;i<len;i++){ if(str[i]>='0'&&str[i]<='9'){ int num1=str[i]-'0'; bitset<4> b1(num1); string m1=brev(b1.to_string()); int oc=0; for(int x=0;x<m1.size();x++){ if(m1[x]=='1'){ oc+=pow(2,3-x); } } cout<<hex<<uppercase<<oc; }else if(str[i]>='a'&&str[i]<='f'){ int num2=str[i]-'a'+10; bitset<4> b2(num2); string m2=brev(b2.to_string()); int oc=0; for(int x=0;x<m2.size();x++){ if(m2[x]=='1'){ oc+=pow(2,3-x); } } cout<<hex<<uppercase<<oc; }else if(str[i]>='A'&&str[i]<='F'){ int num3=str[i]-'A'+10; bitset<4> b3(num3); string m3=brev(b3.to_string()); int oc=0; for(int x=0;x<m3.size();x++){ if(m3[x]=='1'){ oc+=pow(2,3-x); } } cout<<hex<<uppercase<<oc; }else{ cout<<str[i]; } } } // 64 位输出请用 printf("%lld")