题目描述:
独特属性,由你打造。
单挑BOSS,怒刷装备。
皇城PK,胜者为王。
屠龙宝刀,点击就送。
(屠龙宝刀给了你多少广告费,我贪玩蓝月出双倍)
老王在寝室刷剧的时候,总是看到了如此带劲的广告词,于是就试玩了一下,便沉迷其中。 现在刷完了一个boss,爆了一地的装备(n行m列)。游戏管理员要求他可以选择其中一行或者一列的装
备捡到他的背包中。每件装备都有各自的价值v(0<v<1000)
输入格式:
第一行输入两个整数n,m(0<n,m<=10) 接下来输入n行m列的矩阵,共n*m个数代表装备各自的价值v。
输出格式:
选择其中一行或者其中一列的最大价值。
输入样例:
在这里给出一组输入。例如:
7 4
532 517 102 80
907 525 829 84
635 629 682 921
964 304 642 364
16 717 898 53
264 824 751 558
92 496 963 277
2 7
333 743 632 559 27 40 323
149 925 703 953 427 76 161
输出样例:
4867
3394
深刻思想:
新手上道,大佬请飘过~
因为要求行的和与列的和,并求出最有价值数,也就是最大的数。
首先,我们在输入的时候就可以将行的各个和都存入到数组中。
再来一次列的循环,将列的各个和存放在数组中,最后将数组循环,找出最大的值。。
可能这就是大家所说的暴力求解吧。。
若有新思想,望告知。。。
话不多说,代码奉上:
#include<stdio.h>
#include<string.h>
int main()
{
int n,m,a[100][100],i,j,sum[100],s,count=0,max;
while(scanf("%d %d",&n,&m)!=EOF)//因为数据组没有讲明结束条件,所以这里用读写是否失败来判定结束
{
count=0;
for(i=0;i<n;i++)
{
s=0;
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
s+=a[i][j];
}
sum[count++]=s;
}
for(j=0;j<m;j++)
{
s=0;
for(i=0;i<n;i++)s+=a[i][j];
sum[count++]=s;
}
max=sum[0];
for(i=1;i<count;i++)if(sum[i]>max)max=sum[i];
printf("%d\n",max);
}
return 0;
}