洛谷题库一题 我的代码运行成功了 却是wronganwser
求大佬帮忙看一下我的代码为什么错了 这是洛谷题库里的一题;对于一个给定的n*m个矩阵,矩阵中每个元素均为非负整数,游戏规则如下:
1:每次取数时须从每行各取走一个元素,共n个。经过m次后取完矩阵内所有元素;
2:每次取走的各个元素只能是该元素所在行的行首或行尾;
3:每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值*(2的i次方),其中i表示第i次取数(从1开始编号);
4:游戏结束总得分为m次取数得分之和。
帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。
#include<stdio.h>
#include<math.h>
int max(long a,long b)
{
if(a<b)
return 1;
return 0;
}
int main()
{
int i,j,n,m,row_count_go[100]={0},row_count_back[100]={0};
long ar_ray[100][100];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%ld",*(ar_ray+i)+j);
long long sum=0,sum_1[100]={0};
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(max(ar_ray[j][row_count_go[j]],ar_ray[j][m-1-row_count_back[j]]))
{
sum_1[i]+=ar_ray[j][row_count_go[j]]*(long)pow(2,i+1);
row_count_go[j]++;
}
else
{
sum_1[i]+=ar_ray[j][m-row_count_back[j]-1]*(long)pow(2,i+1);
row_count_back[j]++;
}
}
}
for(;i>=0;i--)
sum+=sum_1[i];
printf("%lld",sum);
return 0;
}
求大佬帮帮小白