#include <string>
#include <cstring>
#include <iostream>
#include <iomanip>
using namespace std;
const char digs[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned long long code62(const string& ss)
{
unsigned long long code = 0;
for(const char * s = ss.c_str(); *s; ++s)
{
code = code * 62 + (strchr(digs,*s)-digs); // Номер символа
}
return code;
}
string decode62(unsigned long long val)
{
string res;
while(val)
{
res = digs[val%62] + res;
val /= 62;
}
return res;
}
int main(int argc, const char * argv[])
{
unsigned long long code = code62("BOOzE");
cout << code << endl;
cout << decode62(code) << endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgY2hhciBkaWdzW10gPSAiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiOwoKdW5zaWduZWQgbG9uZyBsb25nIGNvZGU2Mihjb25zdCBzdHJpbmcmIHNzKQp7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgY29kZSA9IDA7CiAgICBmb3IoY29uc3QgY2hhciAqIHMgPSBzcy5jX3N0cigpOyAqczsgKytzKQogICAgewogICAgICAgIGNvZGUgPSBjb2RlICogNjIgKyAoc3RyY2hyKGRpZ3MsKnMpLWRpZ3MpOyAvLyDQndC+0LzQtdGAINGB0LjQvNCy0L7Qu9CwCiAgICB9CiAgICByZXR1cm4gY29kZTsKfQoKc3RyaW5nIGRlY29kZTYyKHVuc2lnbmVkIGxvbmcgbG9uZyB2YWwpCnsKICAgIHN0cmluZyByZXM7CiAgICB3aGlsZSh2YWwpCiAgICB7CiAgICAgICAgcmVzID0gZGlnc1t2YWwlNjJdICsgcmVzOwogICAgICAgIHZhbCAvPSA2MjsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkKewogICAgdW5zaWduZWQgbG9uZyBsb25nIGNvZGUgPSBjb2RlNjIoIkJPT3pFIik7CiAgICBjb3V0IDw8IGNvZGUgPDwgZW5kbDsKICAgIGNvdXQgPDwgZGVjb2RlNjIoY29kZSkgPDwgZW5kbDsKfQo=