This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
typedef long long ll;
const ll INF = 1e9; //4e18;
const ll MOD = 1e9 + 7;
const ll MAXN = 2e5 + 5;
const ll LOG = 30; //20;
const double EPS = 1e-9;
#define vi vector <int>
#define vll vector <ll>
#define pii pair <int, int>
#define pll pair <ll, ll>
#define ipi pair <int, pii>
#define lpl pair <ll, pll>
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define endl '\n'
#define apaaja ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
ll n, q, s, t;
ll a [MAXN];
ll dif [MAXN];
ll f(ll x){
if(x > 0){
return -1 * x * s;
}
return abs(x) * t;
}
int main(){
apaaja
cin >> n >> q >> s >> t;
for(ll i = 0; i <= n; i++){
cin >> a[i];
}
ll total = 0;
for(ll i = 1; i <= n; i++){
dif[i] = a[i] - a[i-1];
total += f(dif[i]);
}
// cout << total << endl;
while(q--){
ll l, r, x; cin >> l >> r >> x;
total -= f(dif[l]);
dif[l] += x;
total += f(dif[l]);
r++;
if(r <= n){
total -= f(dif[r]);
dif[r] -= x;
total += f(dif[r]);
}
cout << total << endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |