package main import "fmt" func transpose(matrix [][]int) [][]int { m := len(matrix) n := len(matrix[0]) res := make([][]int, n) for i := range res { res[i] = make([]int, m) } for i := 0; i < m; i++ { for j := 0; j < n; j++ { res[j][i] = matrix[i][j] } } return res } func main() { var n int fmt.Scan(&n) matrix := make([][]int, n) for i := range matrix { matrix[i] = make([]int, n) for j := range matrix[i] { fmt.Scan(&matrix[i][j]) } } res := transpose(matrix) for i := range res { for j := range res[i] { if j != n{ fmt.Printf("%d ", res[i][j]) } else { fmt.Printf("%d", res[i][j]) } } fmt.Println() } }