Submission #917099

#TimeUsernameProblemLanguageResultExecution timeMemory
917099chirathnirodhaFoehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
327 ms13212 KiB
//Coded by Chirath Nirodha #include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using namespace std; #define F first #define S second #define PB push_back #define MP make_pair #define P push #define I insert typedef long long ll; typedef long double ld; typedef unsigned long long ull; const string abc="abcdefghijklmnopqrstuvwxyz"; const string ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> indexed_set; const ll mod=1e9+7; inline void io(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } void solve(){ io(); ll n,q,s,t;cin>>n>>q>>s>>t; ll a[n+1]; ll b[n]; ll ans=0; for(int i=0;i<=n;i++){ cin>>a[i]; if(i==0)continue; b[i-1]=a[i]-a[i-1]; if(b[i-1]>0)ans-=s*(b[i-1]); else ans-=t*b[i-1]; } while(q--){ ll x,y,z;cin>>x>>y>>z; if(b[x-1]>0)ans+=s*b[x-1]; else ans+=t*b[x-1]; b[x-1]+=z; if(b[x-1]>0)ans-=s*b[x-1]; else ans-=t*b[x-1]; if(y==n){cout<<ans<<endl;continue;} if(b[y]>0)ans+=s*b[y]; else ans+=t*b[y]; b[y]-=z; if(b[y]>0)ans-=s*b[y]; else ans-=t*b[y]; cout<<ans<<endl; } } int main(){ io(); solve(); //int t;cin>>t;for(int i=0;i<t;i++)solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...