func main() var n: int :: cui@inputInt() var arr: [][]int :: #[n, n]int var x: int :: 0 var y: int :: 0 var dx: int :: 1 var dy: int :: 0 for i(1, n ^ 2) do arr[y][x] :: i do x :+ dx do y :+ dy if(x < 0 | n <= x | y < 0 | n <= y | arr[y][x] <> 0) do x :- dx do y :- dy var dx2: int :: -dy var dy2: int :: dx do dx :: dx2 do dy :: dy2 do x :+ dx do y :+ dy end if end for for yy(0, n - 1) for xx(0, n - 1) do cui@print(arr[yy][xx].toStrFmt("03d")) do cui@print(xx = n - 1 ?("\n", " ")) end for end for end func