【模拟】【RQNOJ】监考老师

题目描述

在一个大试场里,有n行m列的考生,小王和众多同学正在考试,这时,有一部分考生作弊,当然,监考老师能发现他们。但是只有一个监考老师,他由于高度近视,只能发现与他同行同列的作弊者,而且由于监考老师年老体弱,在考试过程中无法移动。现在已知n*m个考生中谁在作弊,请帮监考老师找一个位置,可以发现最多的作弊者(监考老师可以和某个考生在同一位置)。如果监考老师的位置上的考生在作弊,那么监考老师先前后看,发现他作弊,再左右看,又发现他作弊,算做发现2个考生作弊

数据范围
对于50 %的数据,0
样例说明
监考老师在最中间,那个位置上的作弊者算作2次

输入格式

第一行两个数n,m ,表示试场是n*m的,接下来是n*m的矩阵,1表示作弊,0表示不作弊。

输出格式

共一行,一个数,表示最多可以发现多少作弊者。

样例输入

5 5 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0

样例输出

10

三维状态图像

/* 注意n和m line代表j列的作弊人数 cross代表i行的作弊人数 */ #include int n,m,ans,a,line[101],cross[101]; int main() { scanf("%d%d",&n,&m); for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) { scanf("%d",&a); if (a==1) { ++line[j]; ++cross[i]; } } for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) if (line[j]+cross[i]>ans) ans=line[j]+cross[i]; printf("%d/n",ans); return 0; }


你可能感兴趣的:(模拟,RQNOJ)