问题描述
解题思路
本题可以直接用两层循环的硬解法解出满分答案。
详细代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) {
int N,M,m;
int i,j;
scanf("%d %d",&N,&M);
int a[N][M+1],plusSum[M+1];
for(i=0;i<N;i++){
scanf("%d",&a[i][0]);
plusSum[0]=0;
for(j=1;j<M+1;j++){
plusSum[j]=0;
scanf("%d",&m);
char c=getchar();
a[i][j]=m;
if(c=='\n'){
break;
}
}
}
int firstSum=0,result=0;
for(i=0;i<N;i++){
for(j=1;j<M+1;j++){
plusSum[i]=plusSum[i]+a[i][j];
}
result=result+a[i][0]+plusSum[i];
plusSum[i]=abs(plusSum[i]);
}
int maxTree,max;
if(N==1){
max=abs(plusSum[0]);
maxTree=1;
printf("%d %d %d",result,maxTree,max);
}
else{
max=plusSum[0];
maxTree=0;
for(i=0;i<N-1;i++){
if(max<plusSum[i+1]){
max=plusSum[i+1];
maxTree=i+1;
}
}
printf("%d %d %d",result,maxTree+1,max);
}
return 0;
}