#include <iostream>
constexpr unsigned int s2i(const char*, int = 0);
constexpr unsigned int Str2Int(const char *Line, int CurrentPos = 0)
{
return !Line[CurrentPos] ? 5381 : (Str2Int(Line, CurrentPos + 1) * 33) ^ Line[CurrentPos];
}
int main()
{
std::cout << Str2Int("3") << '\n';
std::cout << s2i("3") << '\n' ;
}
constexpr unsigned int s2i(const char* Line, int CurrentPos)
{
return !Line[CurrentPos] ? 5381 : (Str2Int(Line, CurrentPos + 1) * 33) ^ Line[CurrentPos];
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY29uc3RleHByIHVuc2lnbmVkIGludCBzMmkoY29uc3QgY2hhciosIGludCA9IDApOwoKY29uc3RleHByIHVuc2lnbmVkIGludCBTdHIySW50KGNvbnN0IGNoYXIgKkxpbmUsIGludCBDdXJyZW50UG9zID0gMCkKewogICAgcmV0dXJuICFMaW5lW0N1cnJlbnRQb3NdID8gNTM4MSA6IChTdHIySW50KExpbmUsIEN1cnJlbnRQb3MgKyAxKSAqIDMzKSBeIExpbmVbQ3VycmVudFBvc107Cn0KCmludCBtYWluKCkKewoJc3RkOjpjb3V0IDw8IFN0cjJJbnQoIjMiKSA8PCAnXG4nOwoJc3RkOjpjb3V0IDw8IHMyaSgiMyIpIDw8ICdcbicgOwp9Cgpjb25zdGV4cHIgdW5zaWduZWQgaW50IHMyaShjb25zdCBjaGFyKiBMaW5lLCBpbnQgQ3VycmVudFBvcykKewogICAgcmV0dXJuICFMaW5lW0N1cnJlbnRQb3NdID8gNTM4MSA6IChTdHIySW50KExpbmUsIEN1cnJlbnRQb3MgKyAxKSAqIDMzKSBeIExpbmVbQ3VycmVudFBvc107Cgp9Cg==