ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1007. Code Words

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

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

Ctrl - C

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

Edited by author 30.12.2015 22:15
Re: До какого момента осуществляется ввод?
Posted by Jane Soboleva (SumNU) 30 Dec 2015 23:21
Да, так можно делать, не ожидать завершения ввода, прежде чем делать вывод. Но без кода не понять, где рантайм.
Re: До какого момента осуществляется ввод?
Posted by Roman 31 Dec 2015 00:06
http://pastebin.com/nJrSuRCj Вот мой код, надеюсь это не запрещено. Может быть надо проверять корректность данных?
Re: До какого момента осуществляется ввод?
Posted by Jane Soboleva (SumNU) 31 Dec 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: До какого момента осуществляется ввод?
Posted by Roman 31 Dec 2015 14:56
Ну уже хотя бы не Runtime. Спасибо.
Re: До какого момента осуществляется ввод?
Posted by Felix_Mate 15 Jul 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.