cin/cout
Если вы пользуетесь cin/cout, добавьте:
ios_base::sync_with_stdio(0); // отключение синхронизации с printf,scanf
cin.tie(0); // отключение синхронизации с cout
scanf, printf
В целом они относительно быстрые.
За исключением комбинации ``64-bit, windows, g++''. Там раз в 10 дольше.
Стандартные быстрые функции
Наиболее быстрые из стандартных функций:
getchar(); // считать символ
gets(s); // считать строку до перевода строки, char*
putchar(c); // вывести символ
puts(s); // вывести строку с переводом строки в конце, char*
На их основе можно сделать так:
Буферизованный ввод/вывод
Смысл в том, чтобы читать/писать не по символам, а блоками по 4K. Для этого можно использовать функции fread, fwrite.
Реализацию еще более быстрого (буферизированного) чтения и вывода можно найти в
Более полная версия:
Пример использования: