Блог пользователя PavelKunyavskiy

Автор PavelKunyavskiy, 15 лет назад, По-русски
На последнем контесте возникла такая проблема. В системе задачи тестируются со стандартным вводом и выводом, а я привык на локальном компьютере писать с вводом выводом в файлы. Помоему я из-за этого умудрился даже лишнию попытку по одной из задач схватить.

Обычно в такой ситуациии помогает константа ONLINE_JUDGE.
Определена ли она в системе тестирования? И есть ли какая-то другая такая константа?

Кстати буду благодарен если кто-нибудь скажет как опеделить что-то такое на локальном компе.

P.S. Извиняюсь если это уже где-то спрашивали.
  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Тут есть строки вызова компиляторов. Видно, что добавлен define ONLINE_JUDGE там, где это понятно, как сделать. Заодно и написано, как это сделать ;) . Можно, наоборот, сделать у себя дома дефайн MY_SECRET_HOME_DEFINE для использования файлов и не зависеть от дефайнов на проверяющей системе.

Кроме того, можно привыкнуть писать, используя стандартный ввод/вывод. Из него проще сделать ввод/вывод в файлы: даже независимо от defines (которых на онсайт-олимпиадах обычно нет) можно себе настроить запуск "x.exe <x.in >x.out". Как минимум, это можно написать один раз в командной строке и дальше вызывать эту команду из истории. Ну или в фаре, например, можно настроить такой запуск по Ctrl-PgDn при помощи Options -> Commands -> File associations (F9 - C - A): нажимаем Ins и делаем как-нибудь так.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Я во время запуска у себя на машине делаю freopen("input.txt","r",stdin) и freopen("output.txt","w",stdout), а при сдаче просто закомменчиваю их. Бывало, конечно, что забывал и из-за этого получал штрафные попытки, но сейчас уже как-то привык и проблем не возникает.