题目链接:传送门
贪心题才是难的
按照从小到大的顺序排,这样相乘会得到最大值,因为后面的最大值乘的更多
最小值同理,就是从大到小处理就可以
但是注意在操作的过程中不一定保证当前的数就是最大,所以要一边操作一边排序
这题数据闹着玩一样最大n就是10
#include <bits/stdc++.h>
using namespace std;
int n, a[11], b[11];
int main(int argc, char const *argv[]) {
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i], b[i] = a[i];
sort(a + 1, a + n + 1);
for (int i = 2; i <= n; i++) a[i] = a[i] * a[i - 1] + 1, sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1, greater<int>());
for (int i = 2; i <= n; i++) b[i] = b[i] * b[i - 1] + 1;
cout << a[n] - b[n] << endl;
}