Ускорение ввода-вывода: различия между версиями

Материал из Algocode wiki
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
Стандартные <code>cin</code> и <code>cout</code> работают очень медленно. Чтобы в разы их ускорить (и, возможно, побороть TLE), в начале <code>main</code> пишите следующее:
+
Стандартные <code>cin</code> и <code>cout</code> работают очень медленно. Чтобы в разы их ускорить (и, возможно, побороть TLE), в начале <code>main</code> пишите следующее (в интерактивных задачах делать этого <b>не надо</b>):
 
<syntaxhighlight lang="C++">
 
<syntaxhighlight lang="C++">
 
ios::sync_with_stdio(0);
 
ios::sync_with_stdio(0);

Текущая версия на 12:43, 28 ноября 2019

Стандартные cin и cout работают очень медленно. Чтобы в разы их ускорить (и, возможно, побороть TLE), в начале main пишите следующее (в интерактивных задачах делать этого не надо):

ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);

Также крайне не рекомендуется использовать endl (кроме интерактивных задач). Используйте "\n". Они отличаются тем, что endl делает flush вывода, то есть сразу же выводит то, что вы хотите. Если вы будете использовать "\n", вывод будет накапливаться, а потом единожды выводиться, что гораздо быстрее.



Автор конспекта: Егор Гутров

По всем вопросам пишите в telegram @Egor_Gutrov