首先把各个位置人的魅力值记录
然后分别计算就好了
因为只需要求最大值
所以在计算的时候只需要记录最大值就好了
#include<stdio.h>
#include<math.h>
int map[22][22];
int main() {
int n,m;
while(scanf("%d %d",&n,&m),n||m) {
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
scanf("%d",&map[i][j]);
int max=-999999,maxi,maxj;
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
int sum=0;
if(i-1>=0) {
if(map[i][j]*map[i-1][j]>0)
sum-=abs(map[i-1][j]);
else
sum+=abs(map[i-1][j]);
}
if(i+1<n) {
if(map[i][j]*map[i+1][j]>0)
sum-=abs(map[i+1][j]);
else
sum+=abs(map[i+1][j]);
}
if(j-1>=0) {
if(map[i][j]*map[i][j-1]>0)
sum-=abs(map[i][j-1]);
else
sum+=abs(map[i][j-1]);
}
if(j+1<m) {
if(map[i][j]*map[i][j+1]>0)
sum-=abs(map[i][j+1]);
else
sum+=abs(map[i][j+1]);
}
if(sum>max) {
max=sum;
maxi=i;
maxj=j;
}
}
}
printf("%d %d %d
",maxi+1,maxj+1,max);
}
return 0;
}