Chủ Nhật, 3 tháng 4, 2022

TICHBASO C++


#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
typedef long long ll;

const ll INF = 1e18;
const int M = 1e9;
ll a[N], n, x , y , z;
ll premax[N], sufmax[N] , premin[N] , sufmin[N];
ll mx = -INF;
void readip(){
    cin >> n;
    for(int i=1;i<=n;i++) cin >> a[i];
    cin >> x >> y >> z;
}

void tinh_cac_mang()
{
    premax[1] = a[1];
    premin[1] = a[1];
    for(int i=2;i<=n;i++)
    {
        premax[i] = max(premax[i - 1] , a[i]);
        premin[i] = min(premin[i - 1],  a[i]);
    }
    sufmin[n] = a[n] , sufmax[n] = a[n];
    for(int i=n-1;i>=1;i--)
    {
        sufmax[i] = max(sufmax[i+1] , a[i]);
        sufmin[i] = min(sufmin[i + 1] , a[i]);
    }
}

void solve(){
    tinh_cac_mang();
    for(int j=2;j<=n-1;j++)
    {
        ll tmp,tmp1,tmp2,tmp3;
        tmp2 = y*a[j];
        if(x>=0) tmp1=x*(premax[j - 1]);
        else tmp1=x*(premin[j - 1]);
        if(z>=0) tmp3=z*(sufmax[j + 1]);
        else tmp3=z*(sufmin[j + 1]);
        tmp = tmp1 + tmp2 + tmp3;
        mx = max(mx, tmp);
    }
    cout << mx;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    freopen("b.inp","r",stdin);
    freopen("b.out","w",stdout);
    readip();
    solve();
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.