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.

Реализацию еще более быстрого (буферизированного) чтения и вывода можно найти в 

Более полная версия: 

Пример использования: