标签:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int bfs[4][2]={{0,-1},{0,1},{-1,0},{1,0}},sum;
int mt[20][20];
int bb(int h,int l,int num,int m,int n)
{
int i;
sum=0;
for (i=0;i<4;i++)
{
if(num>0)
{
if (h+bfs[i][0] <0 || l+bfs[i][1]<0 ||h+bfs[i][0] >=m || l+bfs[i][1] >=n)
continue ;
else
{
if(mt[h+bfs[i][0]][l+bfs[i][1]]>0)
sum -=mt[h+bfs[i][0]][l+bfs[i][1]];
else
sum +=abs(mt[h+bfs[i][0]][l+bfs[i][1]]);
}
}
else
{
if (h+bfs[i][0] <0 || l+bfs[i][1]<0 ||h+bfs[i][0] >=m || l+bfs[i][1] >=n)
continue ;
else
{
//if(mt[h+bfs[i][0]][l+bfs[i][1]]>0)
sum +=mt[h+bfs[i][0]][l+bfs[i][1]];
// else
// sum +=mt[h+bfs[i][0]][l+bfs[i][1]];
}
}
}
return sum;
}
int main()
{
int n,m,i,j;
int h,l,max;
while(cin>>m>>n,n&&m)
{
max = -1000;
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cin>>mt[i][j];
}
}
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
sum = bb(i,j,mt[i][j],m,n);
if(sum > max)
{
h=i;l=j;max=sum;
}
}
}
cout<<h+1<<" "<<l+1<<" "<<max<<endl;
}
return 0;
}
主要的也就是分析过程,我的对于num<0的分析一开始错了,找了很久才AC。
2 3 5 -4 3 -6 3 7 0 0
1 2 11
标签:
原文地址:http://blog.csdn.net/xinwen1995/article/details/45619779