题目描述
非洲同胞永远是我们的好朋友。在东非草原上,一共有 n\times mn×m 只地鼠,他们生活的窝排列成 n\times mn×m 网格型。
其中,每只地鼠都有一个特征值 b_{i,j}bi,j,经调查,我们认为特征值相同的地鼠一定有某种血缘关系。例如,两只地鼠分别生活在第二行第三列、第五行第六列。若 b_{2,3}=b_{5,6}b2,3=b5,6,那么我们认为这两只地鼠是亲戚。
现在,给出这个 n\times mn×m 只地鼠的位置,需要对每只地鼠求出离自己距离最远的亲戚的距离是多少。
注意,假设两只地鼠分别位于第 ii 行第 jj 列和第 aa 行第 bb 列,则它们之间的距离为 (i-a)^2+(b-j)^2(i−a)2+(b−j)2 。
输入格式
第一行两个正整数 n,mn,m,表示地鼠家族的行数和列数。
第 2\sim n+12∼n+1 行给出一张大小为 n\times mn×m 的数表 \{b_{n,m}\}{bn,m},其中 b_{i,j}bi,j 表示第 ii 行 jj 列上地鼠的特征值。
输出格式
输出同样是一个 n\times mn×m 的数表,其中每个元素表示距自己最远的亲戚的距离是多少。
特别的,如果有某只地鼠没有远亲,则输出 00 。
输入输出样例
输入 #1复制
2 4 1 2 3 2 3 2 1 3
输出 #1复制
5 4 5 5 9 5 5 9
说明/提示
对于 30\%30% 的数据,1\leq n,m \leq 31≤n,m≤3 。
对于另外 10\%10% 的数据,有 n=1n=1 。
对于另外 10\%10% 的数据,有 m=1m=1 。
对于另外 10\%10% 的数据,有 b_{i,j}=1bi,j=1 。
对于 100\%100% 的数据,1\leq n,m\leq 50,1\leq b_{i,j}\leq 10^{18}1≤n,m≤50,1≤bi,j≤1018 。
#include<bits/stdc++.h>
using namespace std;
long long a[55][55];
int juli;
int main() {
long long x,y;
cin>>x>>y;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){ //a[i][j]
int max=0;
for(int n=1;n<=x;n++){
for(int m=1;m<=y;m++){
if(a[i][j]==a[n][m]){
int x1=abs(n-i);
int y1=abs(m-j);
juli=x1*x1+y1*y1;
if(juli>max){
max=juli;
}
}
}
} cout<<max<<" ";
}cout<<endl;
}
}