#include<bits/stdc++.h>
const int N = 2e5 + 5;
using namespace std;
struct node {
long long l, r, val, lazy;
} lv[4*N];
bool operator == (node a, node b){
return ((a.l == b.l) && (a.r == b.r) && (a.val == b.val));
}
int n, q;
long long S, T, a[N];
node Merge_Node(node a, node b){
node ans; ans.l = a.l, ans.r = b.r; ans.val = a.val + b.val; ans.lazy = 0;
if (a.r >= b.l) ans.val += T*abs(a.r - b.l);
else ans.val -= S*abs(b.l - a.r);
return ans;
}
void dolazy(int i, int l, int r){
if (lv[i].lazy == 0) return;
lv[i].l += lv[i].lazy; lv[i].r += lv[i].lazy;
if (l != r){
lv[i*2].lazy += lv[i].lazy; lv[i*2+1].lazy += lv[i].lazy;
}
lv[i].lazy = 0;
}
void init(int i, int l, int r){
if (l == r){
lv[i].l = lv[i].r = a[l]; lv[i].val = 0;
return;
}
int mid = (l + r) / 2;
init(i*2, l, mid); init(i*2+1, mid+1, r);
lv[i] = Merge_Node(lv[i*2], lv[i*2+1]);
}
void update(int i, int l, int r, int L, int R, long long val){
dolazy(i, l, r);
if (L > r || l > R) return;
if (L <= l && r <= R) {
lv[i].lazy += val; dolazy(i, l, r);
return ;
}
int mid = (l + r) / 2;
update(i*2, l, mid, L, R, val); update(i*2+1, mid+1, r, L, R, val);
lv[i] = Merge_Node(lv[i*2], lv[i*2+1]);
}
int main(){
scanf("%d %d %lld %lld", &n, &q, &S, &T);
for (int i = 0; i <= n; i++) scanf("%lld", &a[i]);
init(1, 0, n);
while (q--){
long long l, r, val;
scanf("%lld%lld%lld", &l, &r, &val);
update(1, 0, n, l, r, val);
printf("%lld\n", lv[1].val);
}
}
Compilation message
foehn_phenomena.cpp: In function 'int main()':
foehn_phenomena.cpp:55:45: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %lld %lld", &n, &q, &S, &T);
^
foehn_phenomena.cpp:56:54: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
for (int i = 0; i <= n; i++) scanf("%lld", &a[i]);
^
foehn_phenomena.cpp:60:44: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld%lld", &l, &r, &val);
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
28576 KB |
Output is correct |
2 |
Correct |
3 ms |
28576 KB |
Output is correct |
3 |
Correct |
0 ms |
28576 KB |
Output is correct |
4 |
Correct |
3 ms |
28576 KB |
Output is correct |
5 |
Correct |
3 ms |
28576 KB |
Output is correct |
6 |
Correct |
3 ms |
28576 KB |
Output is correct |
7 |
Correct |
0 ms |
28576 KB |
Output is correct |
8 |
Correct |
3 ms |
28576 KB |
Output is correct |
9 |
Correct |
3 ms |
28576 KB |
Output is correct |
10 |
Correct |
3 ms |
28576 KB |
Output is correct |
11 |
Correct |
0 ms |
28576 KB |
Output is correct |
12 |
Correct |
3 ms |
28576 KB |
Output is correct |
13 |
Correct |
0 ms |
28576 KB |
Output is correct |
14 |
Correct |
0 ms |
28576 KB |
Output is correct |
15 |
Correct |
3 ms |
28576 KB |
Output is correct |
16 |
Correct |
0 ms |
28576 KB |
Output is correct |
17 |
Correct |
0 ms |
28576 KB |
Output is correct |
18 |
Correct |
0 ms |
28576 KB |
Output is correct |
19 |
Correct |
0 ms |
28576 KB |
Output is correct |
20 |
Correct |
0 ms |
28576 KB |
Output is correct |
21 |
Correct |
0 ms |
28576 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
516 ms |
28576 KB |
Output is correct |
2 |
Correct |
509 ms |
28576 KB |
Output is correct |
3 |
Correct |
506 ms |
28576 KB |
Output is correct |
4 |
Correct |
536 ms |
28576 KB |
Output is correct |
5 |
Correct |
573 ms |
28576 KB |
Output is correct |
6 |
Correct |
263 ms |
28576 KB |
Output is correct |
7 |
Correct |
226 ms |
28576 KB |
Output is correct |
8 |
Correct |
459 ms |
28576 KB |
Output is correct |
9 |
Correct |
409 ms |
28576 KB |
Output is correct |
10 |
Correct |
463 ms |
28576 KB |
Output is correct |
11 |
Correct |
203 ms |
28576 KB |
Output is correct |
12 |
Correct |
209 ms |
28576 KB |
Output is correct |
13 |
Correct |
273 ms |
28576 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
28576 KB |
Output is correct |
2 |
Correct |
3 ms |
28576 KB |
Output is correct |
3 |
Correct |
0 ms |
28576 KB |
Output is correct |
4 |
Correct |
3 ms |
28576 KB |
Output is correct |
5 |
Correct |
3 ms |
28576 KB |
Output is correct |
6 |
Correct |
3 ms |
28576 KB |
Output is correct |
7 |
Correct |
0 ms |
28576 KB |
Output is correct |
8 |
Correct |
3 ms |
28576 KB |
Output is correct |
9 |
Correct |
3 ms |
28576 KB |
Output is correct |
10 |
Correct |
3 ms |
28576 KB |
Output is correct |
11 |
Correct |
0 ms |
28576 KB |
Output is correct |
12 |
Correct |
3 ms |
28576 KB |
Output is correct |
13 |
Correct |
0 ms |
28576 KB |
Output is correct |
14 |
Correct |
0 ms |
28576 KB |
Output is correct |
15 |
Correct |
3 ms |
28576 KB |
Output is correct |
16 |
Correct |
0 ms |
28576 KB |
Output is correct |
17 |
Correct |
0 ms |
28576 KB |
Output is correct |
18 |
Correct |
0 ms |
28576 KB |
Output is correct |
19 |
Correct |
0 ms |
28576 KB |
Output is correct |
20 |
Correct |
0 ms |
28576 KB |
Output is correct |
21 |
Correct |
0 ms |
28576 KB |
Output is correct |
22 |
Correct |
516 ms |
28576 KB |
Output is correct |
23 |
Correct |
509 ms |
28576 KB |
Output is correct |
24 |
Correct |
506 ms |
28576 KB |
Output is correct |
25 |
Correct |
536 ms |
28576 KB |
Output is correct |
26 |
Correct |
573 ms |
28576 KB |
Output is correct |
27 |
Correct |
263 ms |
28576 KB |
Output is correct |
28 |
Correct |
226 ms |
28576 KB |
Output is correct |
29 |
Correct |
459 ms |
28576 KB |
Output is correct |
30 |
Correct |
409 ms |
28576 KB |
Output is correct |
31 |
Correct |
463 ms |
28576 KB |
Output is correct |
32 |
Correct |
203 ms |
28576 KB |
Output is correct |
33 |
Correct |
209 ms |
28576 KB |
Output is correct |
34 |
Correct |
273 ms |
28576 KB |
Output is correct |
35 |
Correct |
599 ms |
28576 KB |
Output is correct |
36 |
Correct |
609 ms |
28576 KB |
Output is correct |
37 |
Correct |
659 ms |
28576 KB |
Output is correct |
38 |
Correct |
546 ms |
28576 KB |
Output is correct |
39 |
Correct |
573 ms |
28576 KB |
Output is correct |
40 |
Correct |
526 ms |
28576 KB |
Output is correct |
41 |
Correct |
509 ms |
28576 KB |
Output is correct |
42 |
Correct |
546 ms |
28576 KB |
Output is correct |
43 |
Correct |
496 ms |
28576 KB |
Output is correct |
44 |
Correct |
553 ms |
28576 KB |
Output is correct |
45 |
Correct |
556 ms |
28576 KB |
Output is correct |
46 |
Correct |
509 ms |
28576 KB |
Output is correct |
47 |
Correct |
239 ms |
28576 KB |
Output is correct |
48 |
Correct |
216 ms |
28576 KB |
Output is correct |
49 |
Correct |
513 ms |
28576 KB |
Output is correct |
50 |
Correct |
216 ms |
28576 KB |
Output is correct |
51 |
Correct |
243 ms |
28576 KB |
Output is correct |
52 |
Correct |
283 ms |
28576 KB |
Output is correct |