#include <type_traits>
#include <iostream>
template<unsigned acc, char... values>
struct DJBhash_helper
: std::integral_constant<unsigned, acc> {};
template<unsigned acc, char head, char... tail>
struct DJBhash_helper<acc, head, tail...>
: DJBhash_helper<(acc << 5) + acc + head, tail...> {};
template<char... str>
struct DJBhash
: DJBhash_helper<5381, str...> {};
int main()
{
std::cout << DJBhash<'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'0', '1', '2', '3', '4', '5', '6', '7'>::value << '\n';
}
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0ZW1wbGF0ZTx1bnNpZ25lZCBhY2MsIGNoYXIuLi4gdmFsdWVzPgpzdHJ1Y3QgREpCaGFzaF9oZWxwZXIKICAgICA6IHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8dW5zaWduZWQsIGFjYz4ge307CiAKdGVtcGxhdGU8dW5zaWduZWQgYWNjLCBjaGFyIGhlYWQsIGNoYXIuLi4gdGFpbD4Kc3RydWN0IERKQmhhc2hfaGVscGVyPGFjYywgaGVhZCwgdGFpbC4uLj4KICAgICA6IERKQmhhc2hfaGVscGVyPChhY2MgPDwgNSkgKyBhY2MgKyBoZWFkLCB0YWlsLi4uPiB7fTsKIAp0ZW1wbGF0ZTxjaGFyLi4uIHN0cj4Kc3RydWN0IERKQmhhc2gKICAgICA6IERKQmhhc2hfaGVscGVyPDUzODEsIHN0ci4uLj4ge307CiAKaW50IG1haW4oKQp7CiAgICBzdGQ6OmNvdXQgPDwgREpCaGFzaDwnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsCiAgICAgICAgICAgICAgICAgICAgICAgICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3Jz46OnZhbHVlIDw8ICdcbic7Cn0K