题目
翻译
题目
你有一个由24个0和1个1组成的5×5矩阵。让我们从上至下按1至5作为矩阵行的索引,从左到右按1至5作为矩阵列的索引。首先,你可以将以下两个转换之一应用于矩阵:
- 交换矩阵两个相邻的行,也就是说,行为索引i(1 ≤ i < 5)的第i行和第i+1行。
- 交换矩阵两个相邻的列,也就是说,列为索引i(1 ≤ i < 5)的第i列和第i+1列。
你认为如果数字1位于矩阵的中心(第三行和第三列的交点处的单元格)那么矩阵就看起来很美观。计算一下使矩阵变得美观所需要的最少移动步数。
输入
需要输入5行,每行包含5个整数:所输入的第i行的第j个整数表示位于矩阵第i行第j列的元素。确保矩阵是由24个0和1个1组成的。
输出
输出一个整数 一 使矩阵美观所需要的最少移动步数。
分析
只需找到1所在位置(坐标),减去中心点所在位置(坐标),获得行差和列差的绝对值,相加即是最少移动步数。
代码
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a[5][5],row,column;
for(int i = 0;i<5;i++)
for (int j = 0; j < 5; j++)
{
cin >> a[i][j];
if (a[i][j] == 1)
{
row = i;
column = j;
}
}
cout << abs(row - 2) + abs(column - 2);
return 0;
}