Biorąc pod uwagę tablicę liczb całkowitych 2D, posortujmy jej wiersze i kolumny w bloki. Oznacza to, że musisz tylko posortować dany wiersz lub kolumnę, ale stosując transformacje potrzebne do posortowania go do każdego innego wiersza lub kolumny w tablicy 2D.
Zasady
- Wejście będzie dwuwymiarową tablicą liczb całkowitych i 1-indeksowaną liczbą całkowitą. Ta liczba całkowita będzie reprezentować wiersz do posortowania, jeśli liczba jest dodatnia, lub kolumnę do posortowania, jeśli liczba jest ujemna (lub w drugą stronę). Przykład: Biorąc pod uwagę
4x3
tablicę (wiersze x kolumny), możesz posortować drugą kolumnę z-2
argumentem lub trzeci wiersz z3
argumentem. Ten drugi argument nigdy nie będzie wynosił zero, a jego wartość bezwzględna nigdy nie będzie większa niż odpowiadający mu wymiar tablicy. - Wyjściem będzie również tablica liczb całkowitych 2D z zastosowanymi transformacjami do posortowania danego wiersza lub kolumny. Alternatywnie możesz po prostu napisać tablicę do STDOUT.
- Tablica wyjściowa będzie miała określony wiersz lub kolumnę posortowane w porządku rosnącym. Pamiętaj tylko, że kiedy trzeba zamienić dwie liczby z rzędu, całe kolumny, w których leżą liczby, zostaną zamienione. A kiedy trzeba zamienić dwie liczby w kolumnie, całe rzędy, w których leżą liczby, zostaną zamienione.
- W przypadku, gdy ta sama liczba pojawia się kilka razy w sortowanym wierszu / kolumnie, istnieje kilka możliwych rozwiązań w zależności od sposobu zamiany wartości, wystarczy postępować odpowiednio z resztą wierszy / kolumn do zamiany.
Przykłady
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]
To jest golf golfowy , więc może wygrać najkrótszy kod dla każdego języka!