Avatar ·

Por que ler linhas do stdin em C++ é mais lento que em Python?

Olá a todos! Sou um desenvolvedor C++ iniciante e tive um problema estranho. Estava resolvendo um problema no Codeforces onde precisava ler 10 milhões de inteiros da entrada padrão. Escrevi o código em C++ usando std::cin e std::getline, mas o programa demorou terrivelmente — cerca de 30 segundos. Decidi, para testar, escrever um script similar em Python com input() comum e sys.stdin.read().split(), e ele executou em apenas 3-4 segundos! Como isso é possível? Afinal, C++ é considerado uma linguagem mais performática. Aqui está meu código em C++: ```cpp #include #include #include int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::vector numbers; std::string line; while (std::getline(std::cin, line)) { // Parseia os números da linha size_t pos = 0; while (pos < line.size()) { size_t next = line.find(' ', pos); if (next == std::string::npos) next = line.size()