牛客-Y 老师的井字窗

链接:https://ac.nowcoder.com/acm/contest/3667/B
来源:牛客网

Y 老师因为贫穷破费(应该是去买乐高玩具了),现在只能将他镀金的门窗变卖换钱了,但这样就不能抵御即将到来的寒潮了,所以 Y 老师用了几块木板将它的门窗钉了起来,其中包括 n 块横向木板和 m 块纵向木板,横向木板总是与纵向木板十字交叉,这样 Y 老师就能做好一副n*m的井字窗。如下图是一个4*10的井字窗:

现在已知 Y 老师只会钉两块木板的交叉处,我们知道了每颗钉子对这块木板的磨损程度,你能帮他算一下,磨损程度最大的木板,它的磨损度是多少

输入描述:

第一行两个数字,n,m分别代表横向木板与纵向木板的总数量(1<=n,m<=1e5 , n * m <= 1e6)
接下来有 n 行 m 列的矩阵,第 i 行 第 j 列的数字代表,第 i 块横向木板与第 j 块纵向木板之间钉子会造成的磨损程度,矩阵中的每个数是不超过1e5的整数

输出描述:

一行一个数字输出,最大磨损的程度。
示例1

输入

复制
1 2
1 3

输出

复制
4

说明

样例中,第一且唯一的一块横向木板被钉了两次,所以它的磨损程度最大
#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
inline int read() {int x=0,f=1;char c=getchar();while(c!='-'&&(c<'0'||c>'9'))c=getchar();if(c=='-')f=-1,c=getchar();while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return f*x;}
typedef long long ll;
const int maxn = 1e6+10;
ll c[maxn];
ll d[maxn];
int main()
{
    int n,m,x;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            scanf("%d",&x);
            c[i]+=x;
            d[j]+=x;
        }
    }
    sort(c+1,c+n+1);
    sort(d+1,d+m+1);
    ll t=max(c[n],d[m]);
    printf("%lld",t);
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/lipu123/p/12153539.html
今日推荐