static uint64_t getExpForLevel(uint32_t lv) { static std::map<uint32_t, uint64_t> cache; lv--; std::map<uint32_t, uint64_t>::iterator it = cache.find(lv); if(it != cache.end()) return it->second; uint64_t exp = ((50ULL * (lv+1ULL) / 3ULL - 100ULL) * (lv+1ULL) + 850ULL / 3ULL) * (lv+1ULL) - 200ULL;