电影院的舞台可以看成是由 � n 行 � m 列的矩形的方格组成
现在导演告诉你每个方格上是否有演员站着
你现在是一名灯光师,你需要将聚光灯放置在合适的位置
聚光灯会根据放置的方向会向上、下、左、右四个方向中的一个方向发射光束
如果在光束方向上有演员,那么会照亮该演员。一个合适的摆放位置(摆放位置包括坐标和方向)满足两个条件:
该位置没有演员
聚光灯能照射到至少一个演员
计算有多少种合适的摆放方案
注意 同一格子不同的方向也被看作不同的方案 0 表示该方格上没有演员, 1 1 表示该方格上有演员(?处为粘贴问题可忽略)
#include<bits/stdc++.h>
using namespace std;
int a[100][100];
int sum=0;
int x(int j,int i,int m)
{
int x=j,sum=0;
while(x<=m)
{
if(a[i][x]==1)
{
sum++;
}
x++;
}
x=j;
while(x>=1)
{
if(a[i][x]==1)
{
sum++;
}
x--;
}
return sum;
}
int y(int j,int i,int n)
{
int x=j,sum=0;
while(x<=n)
{
if(a[x][i]==1)
{
sum++;
}
x++;
}
x=j;
while(x>=1)
{
if(a[x][i]==1)
{
sum++;
}
x--;
}
return sum;
}
int main()
{
int n,m,sum=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{ if(a[i][j]!=1)
{sum+=x(j,i,m)+y(i,j,n);}
}
}
cout<<sum;
}