#include #include #include #include #include #include int main(int argc, char const *argv[]) { std::random_device randomDevice; std::mt19937 randomEngine(randomDevice()); std::normal_distribution normalDistribution(2147483648, 2147483648); size_t length; if (argc == 1) { length = 1048576; } else { try { length = std::stol(argv[1]); } catch (...) { fprintf(stderr, "Wrong arguments\n"); return 1; } } std::set set; std::vector vector; vector.reserve(length); while (set.size() != length) { auto element = (long long)std::round(normalDistribution(randomEngine)); auto ret = set.insert(element); if (ret.second) { vector.push_back(element); // TODO: add offset // printf("%lld\n", element); } } assert(vector.size() == length); auto offset = *set.begin() < 0 ? 0 - *set.begin() : 0; for (auto element : vector) { printf("%lld\n", element + offset); } return 0; }