six seven

This commit is contained in:
2025-11-23 12:58:38 -06:00
parent d0a3e82e3b
commit d8c4925bb7

View File

@@ -85,14 +85,19 @@ std::string solution(const std::string &S) {
return result;
}
std::string generate_testcase(std::size_t length, std::vector<char> charset, std::mt19937 generator, std::uniform_int_distribution<size_t> dist){
std::string generate_testcase(std::size_t length, std::vector<char> charset, std::ifstream& urandom){
if(length==0 || charset.size()==0) return "";
std::string result = {};
result.resize(length);
thread_local std::vector<unsigned char> buffer = std::vector<unsigned char>{};
buffer.resize(length);
urandom.read(reinterpret_cast<char*>(buffer.data()), length);
for (size_t i= {0}; i<length; i++) {
result.at(i)=charset.at(dist(generator));
result.at(i)=charset.at(buffer.at(i) % charset.size());
}
return result;
}
@@ -113,12 +118,11 @@ int main(){
spdlog::error("FS error {}", e.what());
return 1;
}
std::random_device random_device = std::random_device{};
std::mt19937 generator = std::mt19937{random_device()};
std::uniform_int_distribution<std::size_t> dist (0, charset.size()-1);
std::ifstream urandom = std::ifstream{"/dev/urandom", std::ios::in | std::ios::binary};
spdlog::info("Solution to testcase 0 is: {}", solution("67A6"));
for (size_t i = 0; i < 500; i++) {
std::string input = generate_testcase(i,charset, generator, dist);
for (size_t i = 50; i < 100; i++) {
std::string input = generate_testcase(i,charset, urandom);
std::string output = solution(input);
std::ofstream input_file = std::ofstream{fmt::format("{}/{}.in", folder.string(), i)};