Nieznana ilosc linii Wejscia. Problem(SPOJ)

Czesc,

Jak widac nadal rozwiazuje zadanka ze spoja i ponownie mam problem. Tym razem walcze z zadaniem:Spacje

Probowalem to rozwiazac w ten sposob:

tab=[]
x=0
loop do 
    break if x>=100000
    tab[x]=gets.split(' ')
    #sprawdzenie czy na koncu ostatniego wyrazu jest kropka.
    a=tab[x].length-1
    b=tab[x][a].length-1
    break if tab[x][a][b]=="."
    x+=1
end
y=0
loop do 
    break if y>=tab.length
    z=0
        loop do
            break if z>=tab[y].length
            if z==0
                print tab[y][z]
            else
            print tab[y][z].capitalize
            end
        z+=1
        end
    puts
    y+=1
end

Ale sie nie udalo. Do zaznaczenia konca wpisywania wejscia chcialem uzyc kropki “.” na koncu ostatniego zdania jak mialo to miejsce w przykladzie ale albo gdzies w trakcie testow pojawila sie kropka na koncu lini albo ostatnia wpisywana linia nie posiadala takowej. Ewentualnie bledem bylo zalozenie szkonczonej liczby testow ale nie wydaje mi sie.
Czy mozecie mi podpowiedziec jak rozwiazac ten problem?

foo.rb:

while i = gets do
  puts i
end

i w konsoli na przyklad:

cat jakis_plik | ruby foo.rb

Można też tak

inputs = STDIN.read
inputs.each_line do |line|
  ...
end
1 Like

Hej, Dzieki wielkie za pomoc, koncepcja dziala :smile: Kod pisze w edytorze SciTE w ktorym zanim wczytam dane musze odpalic program i dopiero wtedy podac wejscie i dlatego chcialem zapytac czy jest moze jakis sposob zeby zrobic to samo ale nie znajac z gory wejscia tylko podajac je po odpaleniu programu?