AtCoder Beginner Contest 436 B

https://atcoder.jp/contests/abc436/tasks/abc436_b

斜めの列を埋めつくしたら次の斜めの列に移行するから必ず全部埋まるという話ですね。
行列を作って、順にその要素に値を入れていくだけですね。

N <- scan("stdin", integer())
table <- matrix(0, nrow=N, ncol=N)
r <- 0
c <- (N-1)/2
table[r+1, c+1] <- 1
for(i in 2:(N*N)) {
    new_r <- (r - 1) %% N
    new_c <- (c + 1) %% N
    if(table[new_r+1, new_c+1] == 0) {
        table[new_r+1, new_c+1] = i
        r = new_r
        c = new_c
    }
    else {
        new_r = (r + 1) %% N
        table[new_r+1, c+1] = i
        r <- new_r
    }
}
for(i in 1:N) {
  cat(table[i, ], sep = " ")
  cat("\n")
}