|
|
|
|
|
|
|
Вернуться
| 1 Иван Михнович, 14 мая 2015 г. 12:46:32 | |
Спасибо за ответ! В защиту iostream хочу сказать что он тормозит потому что вынужден синхронизироваться с сишной системой ввода-вывода. Если их расстыковать вызовом ios::sync_with_stdio(false) то разница в производительности незначительна. Иногда плюсовые потоки даже быстрее благодаря статической типизации (но это сильно зависит от реализации). Вот тут http://codeforces.com/blog/entry/5217?locale=ru есть интересные экспериментальные данные по теме. Цена, которую приходится платить за "расстыковку" - необходимость сделать выбор и удовлетвориться чем-то одним: или stdio, или iostream. Иначе не избежать ужасных ошибок.
|
|
|
| 2 Беляев Сергей Николаевич, 14 мая 2015 г. 2:03:12 | |
|
12 мая 2015 г. я внес корректировку в тестирующие системы, т.к. некоторые задачи не проходили по времени. Возможно, что стоит еще "ускорить" тестирующие системы. Разумеется, freopen не должен замедлять выполнение программ, т.к. по сути в любом случае все реализовано с файлами, которые обрабатываются на виртуальном диске (в ОЗУ) для повышения быстродействия. А вот использование scanf и printf вместо cin и cout при большом объеме читаемых и особенно выводимых данных может существенно ускорить выполнение программы.
|
|
|
| 3 Иван Михнович, 13 мая 2015 г. 15:59:42 | |
Сейчас провёл маленький эксперимент. Для задачи 453 отправил своё решение №4221650 дважды: первый раз убрал две строчки с freopen'ами, второй раз без изменений. Позавчера оно получило TLE на 13 тесте, 1,304 с. Сегодня два Accepted. 0,454 и 0,474 секунды соответственно. Значит я был прав и всё-таки в этот день в это время с системой было что-то не так. И во-вторых подключение к файлам через freopen никак существенно не замедляет выполнение программы.
|
|
|
| 4 Беляев Сергей Николаевич, 13 мая 2015 г. 3:12:08 | |
|
С этого месяца на данном сайте можно решать задачи без работы с файлами. Подробности читайте в разделе "Работа в системе".
|
|
|
| 5 Попутников Георгий Сервгеевич, 12 мая 2015 г. 19:37:56 | |
|
перезалей и не забывай про то как посчитать время работы своей программы O()
|
|
|
| 6 Иван Михнович, 12 мая 2015 г. 19:34:52 | |
|
Обычно я открываю файлы через freopen, потом вызываю std::ios::sync_with_stdio(false) и читаю/пишу через iostream. До проблем с этой задачей всё великолепно работало.
|
|
|
| 7 Попутников Георгий Сервгеевич, 12 мая 2015 г. 14:11:43 | |
#include <stdio.h> freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
|
|
|
| 8 Попутников Георгий Сервгеевич, 12 мая 2015 г. 14:09:04 | |
freopen?
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |