Zadanie
Twoim zadaniem jest napisanie całego programu, który dopasuje dane wejściowe do bloku o danym rozmiarze.
Wejście:
40
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Wynik:
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim
id est laborum.
<-- note the linebreak
Dane wejściowe
- Musisz napisać cały program wykonywalny / interpretowalny.
- Można przypuszczać, że dane wejściowe zawierają tylko drukowalne znaki ASCII i nie zawierają tabulatora
\t
. - Dane wejściowe mogą zawierać podział wiersza. Jeśli to nie tak, są one podane jako
\n
,\r
lub\r\n
w zależności od tego, czego się spodziewać. Są one jednak zjednoczone podczas całego wkładu. - Dane wejściowe można podać w STDIN lub jako argumenty wiersza poleceń. Możesz użyć obu z nich, jeśli odpowiada to twoim potrzebom (na przykład odczytać rozmiar bloku z argumentów poleceń i wprowadzić jako standardowe wejście). Nie możesz jednak zakodować żadnej części danych wejściowych do swojego programu.
- Można przypuszczać, że rozmiar bloku podano jako prawidłową
> 0
liczbę dodatnią ( ). - Podział wiersza na wejściu jest traktowany tak samo jak spacja (a zatem jest separatorem słów)
- Jeśli dane wejściowe zawierają wiele współbieżnych spacji, są one traktowane jako jedna.
Dane wyjściowe
- Wyjście musi być sformatowane w blok o danym rozmiarze. Formatowanie odbywa się poprzez dodanie spacji między wyrazami.
- Liczba spacji między słowami w linii musi być równa dla tej linii. Jeśli nie jest to możliwe, należy dodawać kolejne spacje po słowach zaczynających się od lewej.
- Jeśli słowo jest dłuższe niż podany rozmiar bloku, pozostanie ono samo w jednym wierszu (i przekroczy rozmiar bloku).
- Jeśli wynik powinien zawierać tylko jedno słowo, zostanie wyrównany do lewej.
- Ostatni wiersz wyniku musi być wyrównany do lewej, z tylko jedną spacją między słowami. Ostatni wiersz wyniku musi kończyć się łamaniem linii końcowej.
Odpowiedź, z najmniejszą liczbą bajtów po pewnym czasie, wygrywa.
Jeśli potrzebujesz dodatkowych informacji, zostaw komentarz.
Przypadki testowe
Input:
10
Lorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do eiusmod tempor
Output:
Lorem
ipsum
dolor sit
amet,
consectetur
adipiscing
elit, sed
do eiusmod
tempor
Input:
20
Lorem ipsum
dolor sit amet,
Output:
Lorem ipsum dolor
sit amet,
Input:
1
Lorem ipsum dolor sit amet
Output:
Lorem
ipsum
dolor
sit
amet
code-golf
typography
Zereges
źródło
źródło
Odpowiedzi:
Pyth,
605754515052 bajtów2015-10-22: Naprawienie błędu zajęło 2 bajty.
Wypróbuj online.
źródło
Ruby, 179 znaków
Zbyt długo...
Wersja częściowo niestrzeżona:
źródło
CJam, 87 bajtów
To wciąż powinno być możliwe do gry w golfa. Wypróbuj online w interpretatorze CJam .
źródło
Siatkówka , 133 bajty
<empty>
Reprezentuje pustą linię spływu. Aby uruchomić kod, umieść każdą linię w osobnym pliku, zamień na<LF>
znaki końca linii (0x0A) i<TB>
tabulatora (0x09). Dodam wyjaśnienie, kiedy skończę grać w golfa.źródło