Wyobraź sobie prostokątną siatkę |znaków reprezentującą napięte sznurki na krośnie ( osnowę ), które można owinąć innymi wątkami ( wątkiem ), które będziemy reprezentować -.
Oto nietkana osnowa krosna 7 × 4:
|||||||
|||||||
|||||||
|||||||
Istnieje wiele sposobów, w jakie wątek można wplecić w osnowę, najprostszym z nich jest zwykły splot .
W pierwszym rzędzie płaskiego splotu wątek zaczyna się powyżej pierwszego ciągu osnowy, schodzi poniżej drugiego ciągu, następnie powyżej trzeciego ciągu, a następnie poniżej czwartego i tak dalej.
Drugi rząd wątku jest identyczny z pierwszym, ale przesunięty w prawo o jeden ciąg osnowy, więc zaczyna się pod, potem przechodzi i tak dalej.
Na naszym krośnie 7 × 4 splot gładki wygląda następująco:
-|-|-|-
|-|-|-|
-|-|-|-
|-|-|-|
Możemy opisać zwykły splot, mówiąc, że wątek przechodzi przez osnowę 1 raz, a następnie poniżej 1 raz, a każdy kolejny rząd jest przesuwany 1 łańcuch w prawo.
Uogólniony Splot może być opisany poprzez wątkową przejść osnowowe v razy, a następnie w kształcie U razy, przy czym każdy następny wiersz przesunięty s łańcuchów w prawo. (Wszystkie wartości są liczbami całkowitymi, s może być 0 lub ujemne, u i v muszą być nieujemne.)
Krosno 7 × 4 o v = 1 , u = 2 , s = 2 , rodzaj splotu diagonalnego :
-||-||-
||-||-|
|-||-||
-||-||-
Wyzwanie
Twoim zadaniem jest napisanie najkrótszego programu (w bajtach), który tworzy tkany wzór prętów i kresek, biorąc pod uwagę v , u , s , szerokość i wysokość krosna oraz początkowe przesunięcie .
Początkowe przesunięcie jest liczbą łańcuchów pierwszy wiersz w wątku jest przesunięty w prawo (0 w powyższych przykładach). Każdy kolejny rząd jest przesunięty przez s więcej strun.
Twój program powinien pobrać te 6 liczb w jakimś łatwym w użyciu formacie (stdin, wywołanie funkcji itp.) I wyprowadzić tkaną siatkę prętów i prostokątów na standardowe wyjście. Możesz założyć, że wszystkie dane wejściowe są prawidłowe. (Wszystkie wartości są liczbami całkowitymi, szerokość i wysokość muszą być dodatnie, początkowe przesunięcie może być dowolne.)
Przykłady
szerokość = 5, wysokość = 4, wstępne przesunięcie = 0, v = 1, u = 3, s = -2:
-|||-
||-||
-|||-
||-||
szerokość = 5, wysokość = 4, wstępne przesunięcie = 3, v = 1, u = 3, s = -2:
|||-|
|-|||
|||-|
|-|||
szerokość = 5, wysokość = 4, wstępne przesunięcie = 1, v = 1, u = 1, s = 0:
|-|-|
|-|-|
|-|-|
|-|-|
szerokość = 5, wysokość = 4, wstępne przesunięcie = 0, v = 1, u = 0, s = 0:
-----
-----
-----
-----
Notatki
- Wzór zawsze zaczyna się od wątku nad osnową w lewym górnym rogu siatki (chyba że początkowo przesunięto).
- Wszystkie wątki wątku przychodzą od lewej strony. Oni nie spirala jak ten .
- u + v niekoniecznie jest wielokrotnością szerokości siatki.
- u i v mogą nie być równe 0