A - Cherry
先选择一个数ai作为max,对于(aj...ai-1aiai+1...ak)要选择min,倘若ai-1或ai+1不是最小,假设min为ah(j<=h<=k),必有ai*ah<ai*ai-1或者ai*ah<ai*ai-1;可知要选两个相邻数,一遍暴力就好。
注意结果开long long
#include<bits/stdc++.h>
using namespace std;
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int t; cin >> t;
while (t--) {
int n; cin >> n;
vector<int> a(n);
for (auto &x: a) {
cin >> x;
}
long long ans = 0;
for (int i = 1; i < n; i++) {
ans = max(ans, 1LL * a[i] * a[i - 1]);
}
cout << ans << '\n';
}
return 0;
}
B - Cobb
对于f(i,j)不妨假设i<j,则f(i,n)<=i*n(当且仅当ai | an==0取等号),而f(n-