思路
很明显,我们只需要先预处理出来a数组的前缀和sum,然后暴力枚举,分别乘以风和雨的权值,res每次取最大值即可
注意数据溢出,开long long
accode
#include<iostream>
#include<algorithm>
#include<cstring>
#define int long long
using namespace std;
const int N=1e6+10;
int t, n, a[N], k;
int sum[N];
signed main(){
cin>>t;
while(t--){
cin>>n;
for(int i = 1; i <= n; i++){
cin>>a[i];
sum[i] = sum[i-1] + a[i];
}
int ans = 0,tmp;
for(int i = 1; i <=n; i++){
tmp = sum[i]*114 + (sum[n]-sum[i])*514;
ans = max(tmp, ans);
}
cout<<ans<<endl;
}
}