Loading Now

pillShelf

Vũ “Maripium” Hoàng Kiên là một bác sĩ phẫu thuật, nên cũng là điều dễ hiểu khi bác sĩ có rất nhiều loại thuốc khác nhau. Cụ thể, bác sĩ có tổng cộng n2 loại thuốc khác nhau (đánh số từ 1 đến n2), để trong một cái kệ hình vuông kích thước n x n. Lúc đầu, bác sĩ sắp xếp thuốc theo quy luật: Thêm các loại thuốc vào kệ theo thứ tự cột từ phải sang trái, trong mỗi cột thì thêm vào từ trên xuống dưới. Ví dụ, với n = 4 thì đây là cách để thuốc:

13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4

Tuy nhiên, sau một trận động đất xảy ra, toàn bộ số thuốc đã rơi ra khỏi kệ. Bác sĩ vừa chửi “сука блять” vừa sắp xếp lại đống thuốc của mình. Tuy nhiên, sau khi sắp xếp xong thì bác sĩ mới nhận ra do trận động đất mà cả cái kệ đã bị nghiêng đi 45°. Với n = 4, đây là cách để thuốc:

Nhưng đã đến giờ hẹn bệnh nhân rồi, nên bác sĩ bèn kê thẳng lại kệ thuốc rồi đi khám. Hãy cho biết thứ tự của các loại thuốc sau khi bác sĩ đi khám. Với n = 4, đây là thứ tự cuối cùng:

7 4 2 1
11 8 5 3
14 12 9 6
16 15 13 10

Ví dụ:

  • Với n = 4, thứ tự cuối cùng của các loại thuốc là [[7, 4, 2, 1], [11, 8, 5, 3], [14, 12, 9, 6], [16, 15, 13, 10]].

Đầu vào/Đầu ra:

  • [Giới hạn thời gian chạy] 0.5 giây với C++, 3 giây với Java và C#, 4 giây với Python, Go và Js.
  • [Đầu vào] Integer n
    1 <= n <= 1000
  • [Đầu ra] Matrix of Integers
    Trả về một mảng 2 chiều có kích thước n x n là thứ tự của các loại thuốc.

Post Comment

Contact