Hãy tưởng tượng một lưới các |
ký tự hình chữ nhật đại diện cho các chuỗi taut trên khung dệt ( sợi dọc ) mà các sợi khác ( sợi ngang ), mà chúng ta sẽ đại diện là -
, có thể được dệt xung quanh.
Đây là sợi dọc không dệt của khung dệt 7 × 4:
|||||||
|||||||
|||||||
|||||||
Có một số cách sợi ngang có thể được dệt thành sợi dọc, đơn giản nhất là dệt trơn .
Trong hàng đầu tiên của một sợi dệt đơn giản, sợi ngang bắt đầu bên trên chuỗi dọc thứ nhất, bên dưới chuỗi thứ hai, sau đó bên trên chuỗi thứ ba, sau đó bên dưới chuỗi thứ tư, v.v.
Hàng ngang thứ hai giống hệt với hàng thứ nhất nhưng được bù ở bên phải bằng một chuỗi dọc, do đó, nó bắt đầu bên dưới rồi đi qua, v.v.
Trên khung dệt 7 × 4 của chúng tôi, kiểu dệt trơn trông như thế này:
-|-|-|-
|-|-|-|
-|-|-|-
|-|-|-|
Chúng ta có thể mô tả kiểu dệt đơn giản bằng cách nói rằng sợi ngang đi qua sợi dọc 1 lần, sau đó dưới 1 lần và mỗi hàng tiếp theo được dịch chuyển 1 chuỗi sang phải.
Một kiểu dệt tổng quát có thể được mô tả bằng cách đưa sợi ngang đi qua v lần v lần, sau đó dưới thời gian u , với mỗi hàng tiếp theo được dịch chuyển bởi các chuỗi s sang phải. (Tất cả các giá trị là số nguyên, s có thể là 0 hoặc âm, u và v phải không âm.)
Một khung dệt 7 × 4 với v = 1 , u = 2 , s = 2 , một kiểu dệt chéo :
-||-||-
||-||-|
|-||-||
-||-||-
Thử thách
Nhiệm vụ của bạn là viết chương trình ngắn nhất (tính bằng byte) tạo ra một kiểu dệt các thanh và dấu gạch ngang cho v , u , s , chiều rộng và chiều cao của khung dệt và dịch chuyển ban đầu .
Sự thay đổi ban đầu là số chuỗi mà hàng đầu tiên trong sợi ngang được dịch sang phải (0 trong các ví dụ ở trên). Mỗi hàng tiếp theo được chuyển bởi s xâu hơn.
Chương trình của bạn sẽ nhận 6 số này ở một số định dạng dễ sử dụng (stdin, gọi hàm, v.v.) và xuất lưới dệt của các thanh và hình chữ nhật thành thiết bị xuất chuẩn. Bạn có thể cho rằng tất cả các đầu vào là hợp lệ. (Tất cả các giá trị là số nguyên, chiều rộng và chiều cao phải dương, sự thay đổi ban đầu có thể là bất cứ điều gì.)
Ví dụ
width = 5, height = 4, shift ban đầu = 0, v = 1, u = 3, s = -2:
-|||-
||-||
-|||-
||-||
width = 5, height = 4, shift ban đầu = 3, v = 1, u = 3, s = -2:
|||-|
|-|||
|||-|
|-|||
width = 5, height = 4, shift ban đầu = 1, v = 1, u = 1, s = 0:
|-|-|
|-|-|
|-|-|
|-|-|
width = 5, height = 4, shift ban đầu = 0, v = 1, u = 0, s = 0:
-----
-----
-----
-----
Ghi chú
- Mẫu luôn bắt đầu với sợi ngang trên sợi dọc ở góc trên cùng bên trái của lưới (trừ khi thay đổi ban đầu).
- Tất cả các sợi ngang đến từ bên trái. Họ không xoắn ốc như thế này .
- u + v không nhất thiết là bội số của chiều rộng lưới.
- u và v có thể không phải là 0