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;
#define int long long
#define ll long long
#define pb push_back
#define all(v) v.begin(),v.end()
#define fr(m,n) for(int i=m;i<n;i++)
#define ff for(int i=0;i<n;i++)
#define ff1 for(int i=1;i<=n;i++)
#define frr1 for(int i=n;i>0;i++)
#define frr for(int i=n-1;i>=0;i++)
#define endl '\n'
#define el cout<<endl;
#define yes cout<<"YES"
#define yesm cout<<"Yes"
#define no cout<<"NO"
#define nom cout<<"No"
#define inf INT_MAX
#define ext {cout<<-1;return;}
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) a*b/__gcd(a,b)
#define vi vector<int>
#define frj(m,n) for(j=m;j<n;j++)
#define frl(m,n) for(l=m;l<n;l++)
#define sz size()
#define se second
int i, j, k, l, r, m, n, a, b, c, d, ans = 0, num = 0, sum = 0;
int x, y, z, w, ma = 0, mi = inf, q;
string s, p, st;
#define vpi vector<pair<int,int>>
#define vvi vector<vi>
#define pi pair<int,int>
#define mii map<int,int>
#define fi first
#define se second
#define si set<int>
#define mci map<char,int>
#define als(i) cout<<i.fi<<" "<<i.se<<endl;
#define wq while(q--)
bool id;
int su(int x) {
ans = 0;
while (x) {
ans += x % 10;
x /= 10;
} return ans;
}
void solve() {
// cin >> n >> q;
// fr(0, n) s += 'A' + i;
// // cout << s;
// fr(0, n - 1) {
// bool id = 0;
// for (j = 0; j < n - 1; j++) {
// cout << "? " << s[j] << " " << s[j + 1] << endl;
// char kk;
// cin >> kk;
// if (kk == '>') {
// swap(s[j], s[j + 1]); id = 1;
// }
// }
// if (id == 0) break;
// }
// cout << "! " << s << endl;
int n, q, s, t;
cin >> n >> q >> s >> t; vi v(n + 1);
fr(0, n + 1) {
cin >> v[i];
}
sum = 0; s *= -1;
fr(0, n) {
if (v[i] > v[i + 1]) sum += t * (v[i] - v[i + 1]);
else sum += s * (v[i + 1] - v[i]);
}
// cout << sum;
wq{
cin >> a >> b >> x; k = 0;
if (v[a - 1] > v[a]) k += t * abs(v[a - 1] - v[a]);
else k += s * abs(v[a - 1] - v[a]);
if (b != n) {
if (v[b] > v[b + 1]) k += t * abs(v[b] - v[b + 1]);
else k += s * abs(v[b] - v[b + 1]);
}
// cout << k;
sum -= k;
fr(a, b + 1) {
v[i] += x;
}
if (v[a - 1] > v[a]) sum += t * abs(v[a - 1] - v[a]);
else sum += s * abs(v[a - 1] - v[a]);
if (b != n) {
if (v[b] > v[b + 1]) sum += t * abs(v[b] - v[b + 1]);
else sum += s * abs(v[b] - v[b + 1]);
}
cout << sum << endl;
}
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int TC = 1;
// cin >> TC;
while (TC--) {
solve();
el;
} 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... |