题目描述
计算鸭在上电脑课的时候,写了一个游戏。
游戏的内容是:在一个 n×n 的矩阵里,有若干个敌人。你可以选择一个 没有敌人 的位置放置激光炮,激光炮会朝东南西北四个方向发射激光,具有穿透性能消灭射线上的所有敌人。
现在计算鸭想考考你,把激光炮放置在哪个位置上消灭的敌人数量最多。
#include <iostream>
#include <cstring>
using namespace std;
int a[1010][1010];
int n;
int main()
{
int max=-1;
memset(a,-1,sizeof(a));
cin >> n;
for(int i=1;i<=n;i++)//hang
{
for (int j=1;j<=n;j++)//lie
{
cin >> a[i][j];
}
}
for (int i=1;i<=n;i++)
{
int sum=0;
for (int j=1;j<=n;j++)
{
if(!a[i][j])
{
for (int k=1; ;k++)
{
if(a[i][j-k]!=-1)
{
sum+=a[i][j-k];
}
else break;
}
for (int k=1; ;k++)
{
if(a[i][j+k]!=-1)
{
sum+=a[i][j+k];
}
else break;
}
for (int k=1; ;k++)
{
if(a[i+k][j]!=-1)
{
sum+=a[i+k][j];
}
else break;
}
for (int k=1; ;k++)
{
if(a[i-k][j]!=-1)
{
sum+=a[i-k][j];
}
else break;
}
}
else continue;
if(sum>max)max=sum;
}
}
cout << max;
return 0;
}