2D tam sayı dizisi verildiğinde, satırlarını ve sütunlarını bloklar halinde sıralayalım. Bu, yalnızca belirli bir satırı veya sütunu sıralamanız gerektiği, ancak 2D dizisindeki diğer tüm satırlara veya sütunlara sıralamak için gereken dönüşümleri uygulamanız gerektiği anlamına gelir.
kurallar
- Giriş, 2 tam sayı dizisi ve 1 dizinli tam sayı olacaktır. Bu tamsayı, sayı pozitifse sıralanacak satırı veya sayı negatifse (ya da istediğiniz şekilde) sıralanacak sütunu temsil eder. Örnek: Bir
4x3
(satır x sütun) dizisi verildiğinde , ikinci sütunu-2
bağımsız değişkenle veya üçüncü satırı bağımsız değişkenle sıralayabilirsiniz3
. Bu ikinci argüman asla sıfır olmayacak ve mutlak değeri asla dizinin karşılık gelen boyutundan daha büyük olmayacaktır. - Çıktı, aynı zamanda, verilen satırı veya sütunu sıralamak için gereken dönüşümleri içeren bir 2 tam sayı dizisi olacaktır. Alternatif olarak diziyi STDOUT'a yazabilirsiniz.
- Çıktı dizisi, belirtilen sırada veya sütunda artan sırada sıralanır. Bir satırda iki sayıyı değiştirmeniz gerektiğinde, sayıların yer aldığı tüm sütunların yer değiştireceğini unutmayın. Ve bir sütunda iki sayıyı değiştirmeniz gerektiğinde, sayıların bulunduğu satırların tümü değiştirilir.
- Aynı sayının sıralanacak sütunda / sütunda birkaç kez göründüğü durumlarda, değerleri takas etme şekline göre birkaç çözüm mümkün olacaktır, sadece değiştirilecek satırların / sütunların geri kalanıyla buna göre yapın.
Örnekler
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]
Bu kod golf , bu yüzden her dil için en kısa kod kazanabilir!