#include <iostream>
#include <stdexcept>
#include <string>
#include <vector>
std::vector<uint8_t> convert(const std::string& s)
{
if (s.size() % 2 != 0) {
throw std::runtime_error("Bad size argument");
}
std::vector<uint8_t> res;
res.reserve(s.size() / 2);
for (std::size_t i = 0, size = s.size(); i != size; i += 2) {
std::size_t pos = 0;
res.push_back(std::stoi(s.substr(i, 2), &pos, 16));
if (pos != 2) {
throw std::runtime_error("bad character in argument");
}
}
return res;
}
int main()
{
const char* starting = "001122AABBCC";
std::vector<uint8_t> ending = {0x00, 0x11, 0x22, 0xAA, 0xBB, 0xCC};
std::cout << (ending == convert(starting)) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkZXhjZXB0PgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RkOjp2ZWN0b3I8dWludDhfdD4gY29udmVydChjb25zdCBzdGQ6OnN0cmluZyYgcykKewogICAgaWYgKHMuc2l6ZSgpICUgMiAhPSAwKSB7CiAgICAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9yKCJCYWQgc2l6ZSBhcmd1bWVudCIpOwogICAgfQogICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcmVzOwogICAgcmVzLnJlc2VydmUocy5zaXplKCkgLyAyKTsKICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDAsIHNpemUgPSBzLnNpemUoKTsgaSAhPSBzaXplOyBpICs9IDIpIHsKICAgICAgICBzdGQ6OnNpemVfdCBwb3MgPSAwOwogICAgICAgIHJlcy5wdXNoX2JhY2soc3RkOjpzdG9pKHMuc3Vic3RyKGksIDIpLCAmcG9zLCAxNikpOwogICAgICAgIGlmIChwb3MgIT0gMikgewogICAgICAgICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoImJhZCBjaGFyYWN0ZXIgaW4gYXJndW1lbnQiKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgppbnQgbWFpbigpCnsKICAgIGNvbnN0IGNoYXIqIHN0YXJ0aW5nID0gIjAwMTEyMkFBQkJDQyI7CiAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBlbmRpbmcgPSB7MHgwMCwgMHgxMSwgMHgyMiwgMHhBQSwgMHhCQiwgMHhDQ307CgogICAgc3RkOjpjb3V0IDw8IChlbmRpbmcgPT0gY29udmVydChzdGFydGluZykpIDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=