Cho một mảng số nguyên 2D, hãy sắp xếp các hàng và cột của nó theo khối. Điều này có nghĩa là bạn chỉ phải sắp xếp một hàng hoặc cột nhất định, nhưng áp dụng các phép biến đổi cần thiết để sắp xếp nó cho mọi hàng hoặc cột khác trong mảng 2D.
Quy tắc
- Đầu vào sẽ là một mảng 2D gồm các số nguyên và số nguyên 1 chỉ mục. Số nguyên này sẽ đại diện cho hàng được sắp xếp nếu số dương hoặc cột được sắp xếp nếu số đó là số âm (hoặc theo cách khác mà bạn muốn). Ví dụ: Cho một
4x3
mảng (hàng x cột), bạn có thể sắp xếp cột thứ hai bằng một-2
đối số hoặc hàng thứ ba với một3
đối số. Đối số thứ hai này sẽ không bao giờ bằng 0 và giá trị tuyệt đối của nó sẽ không bao giờ lớn hơn kích thước tương ứng của mảng. - Đầu ra cũng sẽ là một mảng số nguyên 2D với các phép biến đổi cần thiết được áp dụng để sắp xếp hàng hoặc cột đã cho. Ngoài ra, bạn chỉ có thể viết mảng vào STDOUT.
- Mảng đầu ra sẽ có hàng hoặc cột được chỉ định được sắp xếp theo thứ tự tăng dần. Chỉ cần lưu ý rằng khi bạn cần trao đổi hai số liên tiếp, toàn bộ các cột nơi các số nằm sẽ được hoán đổi. Và khi bạn cần hoán đổi hai số trong một cột, toàn bộ các hàng nơi các số nằm sẽ được hoán đổi.
- Trong trường hợp cùng một số xuất hiện nhiều lần trong hàng / cột được sắp xếp, sẽ có một số giải pháp có thể theo cách bạn trao đổi các giá trị, chỉ cần thực hiện tương ứng với các hàng / cột còn lại được hoán đổi.
Ví dụ
Positive indices for rows and negative indices for columns
[5 8 7 6 [1 3 2 4
1 3 2 4 order by -3 (3rd column) --> 9 6 3 0
9 6 3 0] 5 8 7 6]
[5 8 7 6 [9 6 3 0
1 3 2 4 order by -4 (4th column) --> 1 3 2 4
9 6 3 0] 5 8 7 6]
[5 8 7 6 [5 7 8 6
1 3 2 4 order by 2 (2nd row) --> 1 2 3 4
9 6 3 0] 9 3 6 0]
[5 8 7 6 [6 7 8 5
1 3 2 4 order by 3 (3rd row) --> 4 2 3 1
9 6 3 0] 0 3 6 9]
[1 2 [1 2 [3 2
3 2] order by -2 (2nd column) --> 3 2] or 1 2] (both are valid)
[7 5 9 7 [5 7 7 9 [5 7 7 9
1 3 2 4 order by 1 (1st row) --> 3 1 4 2 or 3 4 1 2
9 6 3 0] 6 9 0 3] 6 0 9 3]
Đây là môn đánh gôn , vì vậy có thể mã ngắn nhất cho mỗi ngôn ngữ sẽ giành chiến thắng!