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

Автор Aybol, 15 лет назад, По-русски
Админ можешь изменить контесты: писать не через консоль (iostream) а через input, output(fstream) файлы. Кто за, плюсуйте
  • Проголосовать: нравится
  • -42
  • Проголосовать: не нравится

15 лет назад, скрыть # |
 
Проголосовать: нравится -23 Проголосовать: не нравится
Я бы сказал что было бы несколько удобнее если бы осталась возможность и того и того. Действительно через файлы себя проверять удобнее, а константы типа ONLINE_JUDGE иногда падают. Но на самом деле удобно и так, тем более что если программа упала на первом тесте это за попытку не считается
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +25 Проголосовать: не нравится

    Поясни если не сложно что значит "константы типа ONLINE_JUDGE иногда падают"

    Если с ними какая-то проблема то я хочу об этом знать - пользуюсь активно. Они меня ещё ни разу не подвели :)

    Пользуясь случаем хочу ещё раз поблагодарить администрацию за то что падение программы на первом тесте не считается за неверную посылку.

    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      У меня она как-то упала, не помню на каком серве. Именно отправил с ONLINE_JUDGE-не прошло, без нее-прошло. Может конечно руки кривые, но с тех пор осторожничаю.
      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +3 Проголосовать: не нравится
        Вместо ONLINE_JUDGE напиши DEBUG, на локалке всё-равно в режими дебагга работаешь скорее всего, а на тестирующей системе в режиме релиза.
15 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
Зачем? Локально тестируй через файлы. На сервере - stdin, stdout. 

Я против такого нововведения, поэтому поставил минус (в посте Вы призываете к выражению своего мнения через +/-).
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Я только ЗА!

F(file)stream лучше.

А кстати, через файлстрим можно будет ставить задачи с getline-ом.

15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Лёгкие задачи и без файлов нормально пишутся, там объявление файлов будет только потерей времени. А сложные пишутся долго(мной так точно долго) и там для отладки их поставить/закомментировать недолго.
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +6 Проголосовать: не нравится
Не вижу смысла. Пишу на Java, но тестирую все через файлы "input.txt" и "output.txt": 
if (new File("input.txt").exists()) {
System.setIn(new FileInputStream("input.txt"));
System.setOut(new PrintStream(new FileOutputStream("output.txt")));
}
В с++ тоже должно быть что-то такое, типа
ifstream ifile("input.txt");
if (ifile) {
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
}

В таком коде не нужно будет ничего комментировать - на твоей системе ввод считывается с файла, не сервере - с системы.
В общем, далеко не везде нужны админы



15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А какая разница? Там же переменная ONLINE_JUDGE объявлена.

Вот у меня, например, такие строчки в коде есть:
final boolean ONLINE_JUDGE = System.getProperty("ONLINE_JUDGE") != null;
BufferedReader in;
PrintWriter out;
StringTokenizer tok = new StringTokenizer("");

void init() throws IOException {
    if (ONLINE_JUDGE) {
        in = new BufferedReader(new InputStreamReader(System.in));
        out = new PrintWriter(System.out);
    } else {
        in = new BufferedReader(new FileReader("input.txt"));
        out = new PrintWriter("output.txt");
    }
}

На C++ тоже можно так сделать, используя #ifdef
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +3 Проголосовать: не нравится
я против такого введения.
Сам я не пользуюсь константами, во время тестирования я запускаю exe-шник след. образом "a.exe <input.txt" 
ну если большой вывод, то "a.exe <input.txt >output.txt"
а если маленькие ввод и вывод, то гораздо удобнее без файлов ввода-вывода.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Предложение, лишенное смысла.
To JKeeJ1e30: константы ONLINE_JUDGE никогда не падают, не надо...

да и какая разница то? причины непонятные менять систему.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
я дефайню в студии для проекта __ASD__ в настройках, и всё хорошо
#ifdef __ASD__
freopen(tratata);
#endif
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

А я в настройках проекта в студии ставлю вот такие настройки и (почти никогда) не парюсь.


Иногда правда по некоторыми версиями 2008 бажит: по Ctrl+F5 запускается нормально, по F5 - не видит файлы. Может в этих студиях какая-то настройка, которую я не знаю...