2Climber
очевидно, что они читают 1 значение с стандартного входа, потом выдают 1 решение на стандартный вывод, и так в цикле пока есть на входе значения...
возможно это так задумано...
в паскалевском коде возможно в начале есть директивы компилятора?
вообще странно что у тебя не работает приведенный "паскалевский" код. Какая у тебя и у них ОС?
Добавлено спустя 11 минут 38 секунд:Проверил у себя (на linux fedora13 x64_86) такой код:
- Код: Выделить всё
program test_stdin;
var
str : string;
count: integer;
begin
count:= 0;
writeln('Started...');
while not eof do begin
readln(str);
inc(count);
end;
writeln(count, ' rows posted');
end.
можно просто вводить значения после запуска в консоли, потом вводишь Ctrl+D (EOF в линуксовом терминале) -> программа выводит корректный результат. это работает также как и у любой программы которая читает стандартный ввод, например cat - она будет висеть пока не введёшь EOF.
также правильно ведёт себя и перенаправление стандартного ввода/вывода в/из файл,
например запускаю так полученную программу:
[yr@dream stdin_t]$ ./stdin_t < stdin_t.pas
Started...
13 rows posted
[yr@dream stdin_t]$ ./stdin_t < stdin_t.pas > output.txt
[yr@dream stdin_t]$ cat output.txt
Started...
13 rows posted
думаю по второму варианту и работает проверка задач в codechef.com и соответственно должно быть доступно - сначала считать весь ввод, и только после этого выводить результаты.