螺旋矩阵|NOIP 普及组 2014 第二轮(复赛)真题

1 秒 / 测试点 · 128 MiB

[NOIP 2014 普及组] 螺旋矩阵

题目背景

NOIP2014 普及组 T3

题目描述

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

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

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

$$\begin{pmatrix} 1 & 2 & 3 & 4 \\ 12 & 13 & 14 & 5 \\ 11 & 16 & 15 & 6 \\ 10 & 9 & 8 & 7 \\ \end{pmatrix}$$

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

输入格式

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

输出格式

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

样例 1

4 2 3
14

说明 / 提示

【数据说明】

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

对于 $100\%$ 的数据,$1 \leqslant n \leqslant 30,000,1 \leqslant i \leqslant n,1 \leqslant j \leqslant n$。

本卷题目

  1. 珠心算测验
  2. 比例简化
  3. 螺旋矩阵
  4. 子矩阵

题目可直接阅读。页面加载后可编写 C++ 代码、运行样例并提交在线评测。

正在加载试卷…

意见反馈

无需登录也能反馈。管理员的回复可在“我的反馈”中查看。