1.题目大意:给出一个棋盘,其中除了.之外的字符构成一个建筑,先需要判断建筑重心的x坐标是否比第n行的最左边的x坐标或者最右边的x坐标偏离,如果都不偏离就是平衡的
2.图形重心的计算公式如下每一个w可以看为1,大W看为个数。我们只需要搜索建筑的每一块的x坐标以及多少块,再对最后一行处理一下就行了,但是下面的除法涉及到了整型数转化为浮点数,因为向下取整的缘故,我们必须加上0.5才能保证答案正确
#include <iostream>
#include <cstring>
using namespace std;
#define INF 0x3f3f3f3f
int a[105][105];
int n,m;
int main()
{
int xl=INF,xr=0,sum=0,cnt=0;
char c;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>c;
if(c!='.'){
sum+=j;
cnt++;
a[i][j]=1;
}else a[i][j]=0;
}
}
for(int j=1;j<=m;j++){
if(a[n][j]){
xl=min(xl,j);
xr=max(xr,j);
}
}
double d=(double)sum/cnt;
int ans=d+0.5;
if(ans<xl){
cout<<"left"<<endl;
}else if(ans>xr){
cout<<"right"<<endl;
}else cout<<"balanced"<<endl;
return 0;
}