这个题目思路比较简单,需要注意的是,每次疏果数是非正数,所以计算剩余苹果数量时要加上疏果数,而不是加。
#include<iostream>
using namespace std;
int main()
{
int n, m;
int temp;
int max;
int number;
cin >> n >> m;
int* a, * c;
int** b;
int sum = 0;//剩余苹果总数
a = new int[n];//存储苹果树上的苹果数
b = new int* [n];//每次疏果数
c = new int[n];//每棵树上的疏果总数
for (int i = 0; i < n; i++)
b[i] = new int[m];
for (int i = 0; i < n; i++)
{
cin >> a[i];
for (int j = 0; j < m; j++)
cin >> b[i][j];
}
for (int i = 0; i < n; i++)//给所有c[i]初始化为0
c[i] = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
a[i] = a[i] + b[i][j];
c[i] = c[i] - b[i][j];
}
for (int i = 0; i < n; i++)
sum = sum + a[i];
max = c[0];
for (int i = 1; i < n; i++)//z找出c[i]最大值
if (max < c[i])
max = c[i];
for (int i = 0; i < n; i++)//从前向后,找到最先等于max的c[i]值
if (c[i] == max)
{
number = i;
break;
}
cout << sum << " " << number + 1 << " " << max << endl;
delete[]a;
delete[]b;
return 0;
}
运行结果: