Loading Now

drawSpiral

Minh có một mảnh giấy n × m mà anh ta muốn vẽ một hình xoắn ốc. Anh ta sẽ bắt đầu vẽ tại một trong các góc và vẽ theo chiều kim đồng hồ. Các đường xoắn ốc mà anh ta vẽ  được phân cách bằng indent ô vuông. Tổng cộng, Minh muốn vẽ turns vòng xoắn ốc, nhưng anh không chắc mình có thể làm điều đó trên mảnh giấy này. Bạn có thể giúp anh ta vẽ hình xoắn ốc này!

Bạn có hai số nguyên, nm, xác định kích thước của tờ giấy. Bạn có giá trị góc startCorner cho góc bắt đầu hình xoắn ốc (1 cho góc trên bên trái, 2 cho góc trên bên phải, 3 cho góc dưới bên phải và 4 cho góc dưới bên trái),  Nếu tờ giấy là quá nhỏ để vẽ đầy đủ số vòng xoắn ốc thì hãy vẽ tối đa các cạnh có thể.

Example:

  • For n = 18, m = 9, startCorner = 1, indent = 1, and turns = 2, the output should be drawSpiral(n, m, startCorner, indent, turns) =

['1', '1', '1', '1', '1', '1', '1', '1', '1'],
['0', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', '1', '1', '1', '1', '1', '1', '0', '1'],
['1', '0', '0', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '1', '1', '1', '1', '0', '1'],
['1', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', '1', '1', '1', '1', '1', '1', '1', '1']]

           

Hình xoắn ốc bắt đầu ở góc trên bên trái của tờ giấy và theo chiều kim đồng hồ. Vòng xoắn ốc kết thúc sau hai lượt đầy đủ.

  • For n = 18m = 9startCorner = 2indent = 2, and turns = 2, the output should be drawSpiral(n, m, startCorner, indent, turns) = 
         ['1', '1', '1', '1', '1', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '1', '0', '0', '1'],
         ['1', '0', '0', '1', '1', '1', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '0', '0', '0', '1'],
         ['1', '0', '0', '0', '0', '0', '0', '0', '1'],
         ['1', '1', '1', '1', '1', '1', '1', '1', '1']]

       

Vòng xoắn ốc bắt đầu ở góc trên bên phải của tờ giấy và đi xuống thật không may, tờ giấy không có đủ không gian cho 2 lượt vẽ. Vì vậy vòng xoắn ốc kết thúc như hình trên

Input/Output:

  • [execution time limit] 0.5 seconds 

  • [input] integer n

    Chiều cao của giấy.
    3 ≤ n ≤ 100.

  • [input] integer m

    Chiều rộng của giấy.
    3 ≤ m ≤ 100.

  • [input] integer startCorner

Các góc nơi bắt đầu xoắn ốc. 1 đại diện cho góc trên cùng bên trái, 2 góc trên bên phải, 3 góc dưới bên phải và 4 góc dưới bên trái.

1 ≤ startCorner ≤ 4.

  • [input] integer indent

    Khoảng cách giữa các đường xoắn ốc

1 ≤ indent ≤ 10.

  • [input] integer turns

Số vòng quay đầy đủ nên được tạo nên , tối đa nếu có thể.
1 ≤ turns ≤ 20.

  • [output] array.array.char

Một ma trận gồm 0 và 1, trong đó các số 1 đại diện cho hình xoắn ốc.

Post Comment

Contact