测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A305. 螺旋矩阵

编程题 普及/提高-
知识点

题目描述

一个 $n$ 行 $n$ 列的螺旋矩阵可由如下方法生成:


从矩阵的左上角(第 $1$ 行第 $1$ 列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入 $1, 2, 3, ... , n^2$,便构成了一个螺旋矩阵。


下图是一个 $n = 4$ 时的螺旋矩阵。

```
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
```

现给出矩阵大小 $n$ 以及 $i$ 和 $j$,请你求出该矩阵中第 $i$ 行第 $j$ 列的数是多少。

输入格式

共一行,包含三个整数 $n$, $i$, $j$,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。

输出格式

一个整数,表示相应矩阵中第 $i$ 行第 $j$ 列的数。

输入输出样例

输入 #1
4 2 3
输出 #1
14

说明/提示

对于 $50\%$ 的数据,$1 \leqslant n \leqslant 100$;

对于 $100\%$ 的数据,$1 \leqslant n \leqslant 30,000,1 \leqslant i \leqslant n,1 \leqslant j \leqslant n$。
上一题 去做题 下一题