
解题思路:定义一个二维数组来存放输入的信息,第一列用来存放所有果树的初始值,然后遍历数组。具体思路见代码注释。
第一遍提交得了80分,看了半天才明白了原因,快被自己蠢死......
定义数组应该为a[1000][1001],第一遍没有思考直接看了问题规模就定义成了a[1000][1000]。
有一列是专门用来放初始的果子数的呀啊喂.........
#include<iostream>
#include<cmath>
using namespace std;
int a[1000][1001];
int main() {
int m, n; //n为苹果棵树,m为疏果轮数
cin >> n >> m;
int totalnum = 0; //所有果树的总果子数
int sumshu = 0; //每棵树总的疏果数
int max_shuguo = 0; //最大数的疏果数
int max_s = 1; //最大疏果树的编号
for (int i = 0; i < n; i++) {
sumshu = 0;
for (int j = 0; j <= m; j++) {
cin >> a[i][j];
}
}
for (int i = 0; i < n; i++) {
sumshu = 0;
for (int j = 1; j <= m; j++) {
a[i][0] = a[i][0] + a[i][j];//计算疏果完成后每棵果树剩多少果子
sumshu += abs(a[i][j]);//没棵果树的总共疏果量
//计算最大疏果量的数
if (sumshu > max_shuguo) {
max_shuguo = sumshu;
max_s = i + 1;
}
}
totalnum += a[i][0];//所有果树最后加起来的剩余量
}
cout << totalnum << " " << max_s << " " << max_shuguo << endl;
system("pause");
return 0;
}
来源:https://www.cnblogs.com/syq816/p/12289226.html