| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 305779 | couplefire | Foehn Phenomena (JOI17_foehn_phenomena) | C++17 | 3 ms | 384 KiB |
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 MAXN 200005
long long dif[MAXN];
int arr[MAXN];
int n, q, s, t;
int main(){
freopen("a.in", "r", stdin);
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> q >> s >> t; t = -t;
dif[0] = 0;
for(int i = 0; i<=n; i++){
int a; cin >> a;
arr[i] = a;
if(i >= 1) dif[i] = a-arr[i-1];
}
// for(int i = 1; i<=n; i++){
// cout << dif[i] << " ";
// }
// cout << endl;
long long ans = 0;
for(int i = 1; i<=n; i++){
if(dif[i]>0) ans -= s*dif[i];
else ans += t*dif[i];
}
// cout << ans << endl;
while(q--){
int l, r, x; cin >> l >> r >> x;
int curl = dif[l];
dif[l]+=x;
if(curl > 0) ans += s*curl;
else ans -= t*curl;
if(dif[l]>0) ans -= s*dif[l];
else ans += t*dif[l];
if(r == n){
cout << ans << endl;
continue;
}
int curr = dif[r+1];
dif[r+1] -= x;
if(curr > 0) ans += s*curr;
else ans -= t*curr;
if(dif[r+1] > 0) ans -= s*dif[r+1];
else ans += t*dif[r+1];
cout << ans << endl;
}
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
