#include <iostream>
#include <algorithm>
#include <array>
#include <string>
#include <climits>
std::string change(std::string str)
{
std::string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
std::string keyboard = "AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn";
// setup transformation array.
std::array<char, 1 << CHAR_BIT> xform;
xform.fill('.');
for (auto it = alphabet.begin(); it!= alphabet.end(); ++it)
xform[ static_cast<unsigned char>(*it)] = keyboard[it-alphabet.begin()];
std::transform(str.begin(), str.end(), str.begin(),
[&xform](char c) { return xform[static_cast<unsigned char>(c)];});
return str;
}
int main()
{
std::cout << change("Hello") << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjbGltaXRzPgoKc3RkOjpzdHJpbmcgY2hhbmdlKHN0ZDo6c3RyaW5nIHN0cikKewogICAgc3RkOjpzdHJpbmcgYWxwaGFiZXQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CiAgICBzdGQ6OnN0cmluZyBrZXlib2FyZCA9ICJBWkVSVFlVSU9QUVNERkdISktMTVdYQ1ZCTmF6ZXJ0eXVpb3Bxc2RmZ2hqa2xtd3hjdmJuIjsKCiAgICAvLyBzZXR1cCB0cmFuc2Zvcm1hdGlvbiBhcnJheS4KICAgIHN0ZDo6YXJyYXk8Y2hhciwgMSA8PCBDSEFSX0JJVD4geGZvcm07CiAgICB4Zm9ybS5maWxsKCcuJyk7CiAgICBmb3IgKGF1dG8gaXQgPSBhbHBoYWJldC5iZWdpbigpOyBpdCE9IGFscGhhYmV0LmVuZCgpOyArK2l0KQogICAgICAgIHhmb3JtWyBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPigqaXQpXSA9IGtleWJvYXJkW2l0LWFscGhhYmV0LmJlZ2luKCldOwogICAgCiAgICBzdGQ6OnRyYW5zZm9ybShzdHIuYmVnaW4oKSwgc3RyLmVuZCgpLCBzdHIuYmVnaW4oKSwKICAgICAgIFsmeGZvcm1dKGNoYXIgYykgeyByZXR1cm4geGZvcm1bc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyldO30pOwoKICAgIHJldHVybiBzdHI7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8IGNoYW5nZSgiSGVsbG8iKSA8PCAnXG4nOwp9