Example
input
4
3
2 4 3
4
3 2 3 1
2
69 69
6
719313 273225 402638 473783 804745 323328
output
12
6
4761
381274500335
解析:
每次只计算相邻两个数的乘积,乘积的最大值即为答案。
取三个元素 a,b,c,那么其最大值*最小值只能是ab或者bc。
取b为最大(最小)元素,那么显然成立。如果b不是最大元素,则ab或者bc比ac更加符合题意。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll t,n,a[N];
int main(){
scanf("%lld",&t);
while(t--){
ll res=0;
scanf("%lld%lld",&n,&a[1]);
for(int i=2;i<=n;i++){
scanf("%lld",&a[i]);
res=max(res,a[i]*a[i-1]);
}
printf("%lld\n",res);
}
return 0;
}