原谅我没看清题,加上一个小小的偷懒
```cpp
#include<cstdio>
int MapX[1500],MapY[1500],N,Ans = -1,Nc = 0;
struct Can{
int X;
int Y;
}Could[10000];
int main(){
scanf("%d",&N);
for(int i = 1;i <= N;i++){
for(int j = 1;j <= N;j++){
int Tmp;
scanf("%d",&Tmp);
if(Tmp){
MapX[i]+=Tmp;
MapY[j]+=Tmp;
} else {
Could[Nc].X = i;
Could[Nc++].Y = j;
}
}
}
for(int i = 0;i < Nc;i++)
Ans = Ans < MapX[Could[i].X]+MapY[Could[i].Y] ? MapX[Could[i].X]+MapY[Could[i].Y]:Ans;
if(Ans != -1) printf("%d",Ans);
else printf("Bad Game!");
return 0;
}
```
by 呼啸山庄 @ 2017-08-13 21:38:34