제출 #1354257

#제출 시각아이디문제언어결과실행 시간메모리
1354257veyis_113Foehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
233 ms7300 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll v1[200001];
int main(){
      ll n,q,s1,t; cin>>n>>q>>s1>>t;
      ll a[n+1];
      for(ll i=0;i<=n;i++){
        cin>>a[i];
      }
      ll sum1=0,sum2=0;
      for(ll i=0;i<n;i++){
        v1[i+1]=a[i]-a[i+1];
        if(a[i]-a[i+1]>0) sum2+=(a[i]-a[i+1]);
        else sum1+=a[i]-a[i+1];
      }
      while(q--){
        ll l,r,x; cin>>l>>r>>x; r++;
        if(v1[l]>=0){
          sum2-=v1[l];
          v1[l]-=x;
          if(v1[l]>=0) sum2+=v1[l];
          else sum1+=v1[l];
        }
        else{
          sum1-=v1[l];
          v1[l]-=x;
          if(v1[l]>=0) sum2+=v1[l];
          else sum1+=v1[l];
        }
        if(r-1==n){ cout<<sum1*s1+sum2*t<<endl; continue;}
        if(v1[r]>=0){
          sum2-=v1[r];
          v1[r]+=x;
          if(v1[r]>=0) sum2+=v1[r];
          else sum1+=v1[r];
        }
        else{
          sum1-=v1[r];
          v1[r]+=x;
          if(v1[r]>=0) sum2+=v1[r];
          else sum1+=v1[r];
        }
        cout<<sum1*s1+sum2*t<<endl;
      }
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…