#include <string>
#include <iostream>
using namespace std;
void printString(string source)
{
for (int i = 0; i < source.length(); i++)
cout << source[i];
cout << endl;
}
void printHex(string source)
{
for (int i = 0; i < source.length(); i++)
cout << hex << uppercase << (int)(unsigned char) (source.c_str()[i]) << ' ';
cout << endl;
}
void gamma_ca(string s1, string s2, string &res)
{
for (int i = 0; i < s1.length(); i++) {
res += (s1.c_str()[i]) ^ (s2.c_str()[i]);
}
}
void gamma_resize(string s1, string s2, string &res)
{
res.resize(s1.length());
for (int i = 0; i < s1.length(); i++) {
res[i] = (s1.c_str()[i]) ^ (s2.c_str()[i]);
}
}
int main(){
string a = "xyz123";
string b = "abd:|}";
string compound;
string resized;
gamma_ca(a,b,compound);
gamma_ca(a,b,resized);
printHex(compound);
printHex(resized);
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcHJpbnRTdHJpbmcoc3RyaW5nIHNvdXJjZSkKewoJZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkrKykgCgkJY291dCAgPDwgc291cmNlW2ldOwoJY291dCA8PCBlbmRsOwp9Cgp2b2lkIHByaW50SGV4KHN0cmluZyBzb3VyY2UpCnsKCWZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyBpKyspIAoJCWNvdXQgIDw8IGhleCA8PCB1cHBlcmNhc2UgPDwgKGludCkodW5zaWduZWQgY2hhcikgKHNvdXJjZS5jX3N0cigpW2ldKSA8PCAnICc7Cgljb3V0IDw8IGVuZGw7Cn0KCgp2b2lkIGdhbW1hX2NhKHN0cmluZyBzMSwgc3RyaW5nIHMyLCBzdHJpbmcgJnJlcykKewoJZm9yIChpbnQgaSA9IDA7IGkgPCBzMS5sZW5ndGgoKTsgaSsrKSB7CgkJcmVzICs9IChzMS5jX3N0cigpW2ldKSBeIChzMi5jX3N0cigpW2ldKTsKCX0KfQoKdm9pZCBnYW1tYV9yZXNpemUoc3RyaW5nIHMxLCBzdHJpbmcgczIsIHN0cmluZyAmcmVzKQp7CglyZXMucmVzaXplKHMxLmxlbmd0aCgpKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgczEubGVuZ3RoKCk7IGkrKykgewoJCXJlc1tpXSA9IChzMS5jX3N0cigpW2ldKSBeIChzMi5jX3N0cigpW2ldKTsKCX0KfQoKaW50IG1haW4oKXsKCXN0cmluZyBhID0gInh5ejEyMyI7CglzdHJpbmcgYiA9ICJhYmQ6fH0iOwoJc3RyaW5nIGNvbXBvdW5kOwoJc3RyaW5nIHJlc2l6ZWQ7CgkKCWdhbW1hX2NhKGEsYixjb21wb3VuZCk7CglnYW1tYV9jYShhLGIscmVzaXplZCk7CglwcmludEhleChjb21wb3VuZCk7CglwcmludEhleChyZXNpemVkKTsKCQoJcmV0dXJuIDA7Cn0K