说是说暴力题可确实卡了我好久。。。。没有看到题目的第一句话"如果答案不唯一,输出任意解即可”,也就是意味着正确答案是会有多个的。。。但是我以为正确答案也会只有一个。。。。所以一开始判定方法是判断错误算法的行和列是不是和正确的一样,后来改成了判断值是不是一样就A了,,,,,诶。。。果然还是经验不够。。5000ms,完全可以跑暴力。。
#include<cstdio>
#include<cstring>
using namespace std;
int r,c,arr[505][505],row[505],col[505],maxr,rw,maxc,cw,maxm,rr,cr,times=1;
int main(){
while(scanf("%d%d",&r,&c)!=EOF){
for(int i=1;i<=r;++i)
for(int j=1;j<=c;++j)
scanf("%d",&arr[i][j]),row[i]+=arr[i][j],col[j]+=arr[i][j];
for(int i=1;i<=r;++i)
if(row[i]>maxr)
maxr=row[i],rw=i;
for(int i=1;i<=c;++i)
if(col[i]>maxc)
maxc=col[i],cw=i;
for(int i=1;i<=r;++i)
for(int j=1;j<=c;++j)
if(row[i]+col[j]-arr[i][j]>maxm)
maxm=row[i]+col[j]-arr[i][j],rr=i,cr=j;
printf("Case %d: %s\n",times++,((row[rw]+col[cw]-arr[rw][cw]==maxm)?"Weak":"Strong"));
maxr=maxc=maxm=0;
memset(row,0,sizeof(int)*(r+1));
memset(col,0,sizeof(int)*(c+1));
}
}