1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include <vector> #include <stdint.h> constexpr uint64_t do_the_hash(const char* input, uint64_t value_so_far) { return *input ? do_the_hash(input + 1, (value_so_far << 8) | *input) : value_so_far; } constexpr uint64_t hash_metafunction(const char* input) { return do_the_hash(input, 0); } int main() { std::cout << std::hex; std::cout << hash_metafunction("a") << std::endl; std::cout << hash_metafunction("ab") << std::endl; std::cout << hash_metafunction("abc") << std::endl; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RkaW50Lmg+Cgpjb25zdGV4cHIgdWludDY0X3QgZG9fdGhlX2hhc2goY29uc3QgY2hhciogaW5wdXQsIHVpbnQ2NF90IHZhbHVlX3NvX2ZhcikgewogICAgcmV0dXJuICppbnB1dCA/IGRvX3RoZV9oYXNoKGlucHV0ICsgMSwgKHZhbHVlX3NvX2ZhciA8PCA4KSB8ICppbnB1dCkgOiB2YWx1ZV9zb19mYXI7Cn0KCgpjb25zdGV4cHIgdWludDY0X3QgaGFzaF9tZXRhZnVuY3Rpb24oY29uc3QgY2hhciogaW5wdXQpIHsKICAgIHJldHVybiBkb190aGVfaGFzaChpbnB1dCwgMCk7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aGV4OwogICAgc3RkOjpjb3V0IDw8IGhhc2hfbWV0YWZ1bmN0aW9uKCJhIikgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IGhhc2hfbWV0YWZ1bmN0aW9uKCJhYiIpIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCBoYXNoX21ldGFmdW5jdGlvbigiYWJjIikgPDwgc3RkOjplbmRsOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 2884 kB returned value: 0
61 6162 616263


