题目描述
小T在上电脑课的时候,写了一个游戏。
游戏的内容是:在n*n的矩阵里,有若干个敌人。你可以选择一个 没有敌人 的位置放置激光炮,激光炮会朝左上角和左下角两个方向发射激光,能消灭与激光炮距离为1的敌人。
目前只能部署一次激光炮,请问把激光炮放置在哪个位置上消灭的敌人数量最多。
输入格式
第一行一个正整数 n ,表示矩阵的大小。
接下来 n 行,每行 n 个整数 x (0≤x≤9),表示敌人的数量。
输出格式
一个整数,表示最多能消灭的敌人数量。
题目描述
小T在上电脑课的时候,写了一个游戏。
游戏的内容是:在n*n的矩阵里,有若干个敌人。你可以选择一个 没有敌人 的位置放置激光炮,激光炮会朝左上角和左下角两个方向发射激光,能消灭与激光炮距离为1的敌人。
目前只能部署一次激光炮,请问把激光炮放置在哪个位置上消灭的敌人数量最多。
输入格式
第一行一个正整数 n ,表示矩阵的大小。
接下来 n 行,每行 n 个整数 x (0≤x≤9),表示敌人的数量。
输出格式
一个整数,表示最多能消灭的敌人数量。
收起
遍历所有0的位置,统计左上和左下格的数值和,取最大值
#include <stdio.h>
int a[1000][1000];
int main()
{
int n,i,j,max=0,e=0;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=1;j<n;j++)
{
if(a[i][j] == 0)
{
e = 0;
if(i>0)
e += a[i-1][j-1];
if(i<n-1)
e += a[i+1][j-1];
if(e > max)
max = e;
}
}
printf("%d",max);
}
报告相同问题?