ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1007. Кодовые слова

До какого момента осуществляется ввод?
Послано Roman 30 дек 2015 22:12
Всем привет! Я написал реализацию программы на Java. Проверка выдает Runtime error. Программа принимает n, после чего слушает ввод и после каждого введенного слова выводит ответ. Выглядит это так:

9
0010100011 //мой ввод
001000011  //вывод программы
00010010   //мой ввод
000100101  //вывод программы

Ctrl - C

Скажите, правильно ли реализовал ввод/вывод данных?
Спасибо!

Edited by author 30.12.2015 22:15
Re: До какого момента осуществляется ввод?
Послано Jane Soboleva (SumNU) 30 дек 2015 23:21
Да, так можно делать, не ожидать завершения ввода, прежде чем делать вывод. Но без кода не понять, где рантайм.
Re: До какого момента осуществляется ввод?
Послано Roman 31 дек 2015 00:06
http://pastebin.com/nJrSuRCj Вот мой код, надеюсь это не запрещено. Может быть надо проверять корректность данных?
Re: До какого момента осуществляется ввод?
Послано Jane Soboleva (SumNU) 31 дек 2015 06:22
Я точно не уверена, т. к. у меня нет большого опыта в джаве, но возможно, проблема вот здесь
while(true) {
    a = input();
    if (a.length() > 0) {
        System.out.println(toSource(a));
    }
}
Как я вижу, программа никогда не выходит из цикла, и в некоторый момент пытается что-то читать после того, как входные данные заканчиваются. Я исправила while(true) на while(in.hasNextLine) (входные данные не закончены, имеется следующая строка) и class на public class (иначе выдаёт compilation error). Теперь получается WA #1. Честно говоря, непонятно почему, вроде на тестовых данных в других ветках обсуждения нормально проходит. Может кто-то более опытный сможет подсказать.
Re: До какого момента осуществляется ввод?
Послано Roman 31 дек 2015 14:56
Ну уже хотя бы не Runtime. Спасибо.
Re: До какого момента осуществляется ввод?
Послано Felix_Mate 15 июл 2016 15:46
Ввод верный (его несложно подправить и под не Pascal):

const nmax=1111;
var
 a:array[1..nmax] of char;
 n,i,j,len:longint;
 ch:char;
.....
begin
 readln(n);
 while not eof do begin
  len:=0;
  read(ch);
  if(ch='0')or(ch='1') then begin       //началось считывание очередного слова
   len:=1;
   a[len]:=ch;
   read(ch);
   while(ch=' ')or(ch='1')or(ch='0') do begin
    if(ch='1')or(ch='0') then begin
     inc(len);
     a[len]:=ch;
    end;
    read(ch);
   end;
   Solve(len);
   readln;                  //перевод строки
  end;
 end;
end.