Avatar ·

¿Por qué leer líneas de stdin en C++ es más lento que en Python?

¡Hola a todos! Soy un desarrollador principiante de C++ y me encontré con un problema extraño. Estaba resolviendo un problema en Codeforces donde necesitaba leer 10 millones de enteros desde la entrada estándar. Escribí código en C++ usando std::cin y std::getline, pero el programa tardó agonizantemente mucho — alrededor de 30 segundos. Decidí, para verificar, escribir un script similar en Python con input() normal y sys.stdin.read().split(), ¡y se ejecutó en solo 3-4 segundos! ¿Cómo es posible? Después de todo, C++ se considera un lenguaje más eficiente. Aquí está mi código en 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)) { // Parseamos números desde la línea size_t pos = 0; while (pos < line.size()) { size_t next = line.find(' ', pos); if (next == std::string::npos) next = line.size();