Всем привет!
Я не знаю, возможно, эта тема где-то уже поднималась, но быстрый гуглинг не помог.
Такое ощущение, что стандартная хеш-функция для целых чисел в gcc работает плохо (для Visual C++ все нормально).
Для 0 ≤ x ≤ 232 - 1
std::hash<int>()(x) == x
std::hash<long long>()(x) == x
Для остальных чисел верно
std::hash<long long>()(x + (1LL << 32)) == x
Например, код ниже работает в запуске на Codeforces более 10 секунд, потому что хеши всех чисел равны нулю.
Код
Можно ли что-то с этим сделать без написания собственной хеш-функции?