比赛 2024暑假C班集训5 评测结果 AAAAAAAAAA
题目名称 焚风现象 最终得分 100
用户昵称 dream 运行时间 3.028 s
代码语言 C++ 内存使用 6.26 MiB
提交时间 2024-07-05 11:46:27
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=200005;
ll n,q,s,t;
ll a[N];
ll b[N];
ll res=0;
void gl(int x){
    if(x>n){
        return;
    }
    int v=a[x];
    int last=res;
    if(v>0){
        res+=v*s; 
    } 
    if(v<0){
        res-=-v*t;
    }
}
void xg(int x){
    if(x>n){
        return;
    }
    int last=res;
    int v=a[x];
    if(v>0){
        res-=v*s;
    }
    if(v<0){
        res+=-v*t;
    }
}
int main(){
    freopen("foehn.in","r",stdin);
    freopen("foehn.out","w",stdout);
    ios::sync_with_stdio(0);
    cin>>n>>q>>s>>t;
    b[0]=0;
    for(int i=0;i<=n;i++){
        cin>>b[i];
        a[i]=b[i]-b[i-1];
    }
    
    for(int i=0;i<=n;i++){
        if(a[i]>0){
            res+=a[i]*-s;
        }
        if(a[i]<0){
            res+=-a[i]*t;
        }
    }
    while(q--){
        ll l,r,x;
        cin>>l>>r>>x;
        gl(l);
        gl(r+1);
        a[l]+=x;
        a[r+1]-=x;
        xg(l);
        xg(r+1);
        cout<<res<<"\n";
    }
    return 0;
}