题目描述
郭远有一天走到了一片苹果林,里面每颗树上都结有不同数目的苹果,郭远身上只能拿同一棵树上的苹果,他每到一棵果树前都会把自己身上的苹果扔掉并摘下他所在树上的苹果并带走(假设郭远会走过每一棵苹果树),问在郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差是多少?
输入格式
m,n(即苹果林中有果树的行数和列数,0<n,m<=10) m行n列数据(即每颗树上的苹果数)
输出格式
1个数字(郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差)
输入样例
4 3
2 6 5
1 3 7
5 3 5
1 7 12
输出样例
11
分类标签
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int m, n;
cin >> m >> n;
vector<vector<int>> apples(m, vector<int>(n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> apples[i][j];
}
}
int min_apples = apples[0][0];
int max_apples = apples[0][0];
for (int i = 0; i < m; i++) {
int min_row = *min_element(apples[i].begin(), apples[i].end());
int max_row = *max_element(apples[i].begin(), apples[i].end());
min_apples = min(min_apples, min_row);
max_apples = max(max_apples, max_row);
}
cout << max_apples - min_apples << endl;
return 0;
}
代码: