分析:水题,注意计算某个位置的分数时他自己的不算,加减都是绝对值(一开始这里还理解错了)。
#include<iostream> #include<cmath> using namespace std; int a[25][25]; int main() { int i,j,n,m; int maxv,maxi,maxj,tmp; while(cin>>n>>m && n+m) { for(i=0;i<n;i++) for(j=0;j<m;j++) cin>>a[i][j]; maxv=-100000000; for(i=0;i<n;i++) for(j=0;j<m;j++) { tmp=0; if(i>0) { if(a[i][j]*a[i-1][j]<0) tmp+=abs(a[i-1][j]); else tmp-=abs(a[i-1][j]); } if(j>0) { if(a[i][j]*a[i][j-1]<0) tmp+=abs(a[i][j-1]); else tmp-=abs(a[i][j-1]); } if(i<n-1) { if(a[i][j]*a[i+1][j]<0) tmp+=abs(a[i+1][j]); else tmp-=abs(a[i+1][j]); } if(j<m-1) { if(a[i][j]*a[i][j+1]<0) tmp+=abs(a[i][j+1]); else tmp-=abs(a[i][j+1]); } if(maxv<tmp) { maxv=tmp; maxi=i; maxj=j; } } cout<<maxi+1<<" "<<maxj+1<<" "<<maxv<<endl; } return 0; }
时间: 2024-10-09 11:53:04