package ĠSp iral Matrix Ċ Ċ fun Ġof Size ( n : ĠInt ): ĠArray < IntArray > Ġ{ ĊĠĠĠ Ġval Ġmatrix Ġ= ĠArray ( n , Ġ{ ĠInt Array ( n ) Ġ}) ĊĠĠĠ Ġfun Ġfill ( v : ĠInt , Ġru : ĠInt , Ġrd : ĠInt , Ġcl : ĠInt , Ġcr : ĠInt ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(!( ru Ġ>= Ġrd Ġ|| Ġcl Ġ>= Ġcr )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġv ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( cl Ġuntil Ġcr ). forEach Ġ{ Ġmatrix [ ru ][ it ] Ġ= Ġvalue ++ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( ru Ġ+ Ġ 1 Ġuntil Ġrd ). forEach Ġ{ Ġmatrix [ it ][ cr Ġ- Ġ 1 ] Ġ= Ġvalue ++ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( cr Ġ- Ġ 2 Ġdown To Ġcl ). forEach Ġ{ Ġmatrix [ rd Ġ- Ġ 1 ][ it ] Ġ= Ġvalue ++ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( rd Ġ- Ġ 2 Ġdown To Ġru Ġ+ Ġ 1 ). forEach Ġ{ Ġmatrix [ it ][ cl ] Ġ= Ġvalue ++ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill ( value , Ġru Ġ+ Ġ 1 , Ġrd Ġ- Ġ 1 , Ġcl Ġ+ Ġ 1 , Ġcr Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfill ( 1 , Ġ 0 , Ġn , Ġ 0 , Ġn ) ĊĠĠĠ Ġreturn Ġmatrix Ċ }