2.蛇形矩阵(snake.cpp)
【问题描述】
一个 n 行 m 列的蛇形矩阵可由如下方法生成:
从矩阵的左上角( 第 1 行第 1 列) 出发, 初始时向右移动;当到达最后一列时转到下一行, 再向左移动, 当到达最左一列时转到下一行, 再向右移动;重复上述操作直至经过矩阵中所有格子。根据经过顺序, 在格子中依次填入 1, 2, 3, ... , n*m, 便构成了一个 蛇形矩阵。
下图是一个 4 行 4 列的蛇形矩阵:
现给出矩阵大小 n、 m 以及 i 和 j, 请你求出该矩阵中第 i 行第 j 列的数是多少。
【输入格式】
输入文件名为 snake.in。
输入共一行, 包含四个整数 n,m,i,j , 每两个整数之间用一个空格隔开, 分别表示矩阵的大小以及待求的数所在的行号和列号。
【输出格式】
输出文件名为 snake.out。
输出一个整数, 表示相应矩阵中第 i 行第 j 列的数。
【输入输出样例】
snake.in |
snake.out |
4 4 2 3 |
6 |
【数据范围】
对于 50% 的数据:1 ≤ n,m ≤ 100
对于 100% 的数据:1 ≤ n,m ≤ 30000;1 ≤ i ≤ n,1 ≤ j ≤ m