#include
#include
#include
int main() {
std::unordered_map nums;
std::set sum_of_2_cubes;
for (int i = 1; i < 40; ++i) {
long long i_cubed = (long long)i * i * i;
for (int j = i; j < 40; ++j) {
long long cube_sum = i_cubed + (long long)j * j * j;
auto [it, inserted] = nums.try_emplace(cube_sum, i, j);
if (!inserted && i != it->second.first && j != it->second.second) {
sum_of_2_cubes.insert(cube_sum);
}
}
}
for (auto it = sum_of_2_cubes.begin(); it != sum_of_2_cubes.end() && std::distance(sum_of_2_cubes.begin(), it) < 5; ++it) {
std::cout