#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node {
ll lv, rv, lz, v;
};
const int MAXN=2e5+3;
int v[MAXN];
node seg[MAXN*4];
int n, q, x, y;
void remerge(int sind, int e, int d) {
seg[sind].v=seg[e].v+seg[d].v;
ll val=seg[d].lv-seg[e].rv;
seg[sind].v+= val<0 ? -val*(ll)y : -val*(ll)x;
seg[sind].lv=seg[e].lv;
seg[sind].rv=seg[d].rv;
}
void build(int sind, int ini, int fim) {
if(ini==fim) {
seg[sind].rv=seg[sind].lv=v[ini];
seg[sind].lz=0;
return;
}
int mid=(ini+fim)/2;
int e=sind*2; int d=e+1;
build(e, ini, mid);
build(d, mid+1, fim);
remerge(sind, e, d);
}
void refresh(int sind, int ini, int fim) {
if(!seg[sind].lz) return;
seg[sind].lv+=seg[sind].lz;
seg[sind].rv+=seg[sind].lz;
if(ini==fim) {
seg[sind].lz=0;
return;
}
int e=sind*2; int d=e+1;
seg[e].lz+=seg[sind].lz;
seg[d].lz+=seg[sind].lz;
seg[sind].lz=0;
return;
}
void update(int sind, int ini, int fim, int qini, int qfim, int val) {
refresh(sind, ini, fim);
if(qfim<ini||qini>fim) return;
if(qini<=ini&&qfim>=fim) {
seg[sind].lz=val;
refresh(sind, ini, fim);
return;
}
int mid=(ini+fim)/2;
int e=sind*2; int d=e+1;
update(e, ini, mid, qini, qfim, val);
update(d, mid+1, fim, qini, qfim, val);
remerge(sind, e, d);
}
int main() {
scanf("%d %d %d %d", &n, &q, &x, &y); n++;
for(int i=1; i<=n; i++) scanf("%d", &v[i]);
build(1, 1, n);
while(q--) {
int ini, fim, val;
scanf("%d %d %d", &ini, &fim, &val);
update(1, 1, n, ini+1, fim+1, val);
printf("%lld\n", seg[1].v);
}
}
Compilation message
foehn_phenomena.cpp: In function 'int main()':
foehn_phenomena.cpp:66:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d %d", &n, &q, &x, &y); n++;
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foehn_phenomena.cpp:67:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
for(int i=1; i<=n; i++) scanf("%d", &v[i]);
~~~~~^~~~~~~~~~~~~
foehn_phenomena.cpp:72:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d", &ini, &fim, &val);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
504 KB |
Output is correct |
2 |
Correct |
5 ms |
500 KB |
Output is correct |
3 |
Correct |
5 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
3 ms |
504 KB |
Output is correct |
6 |
Correct |
5 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
504 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
4 ms |
508 KB |
Output is correct |
12 |
Correct |
4 ms |
504 KB |
Output is correct |
13 |
Correct |
4 ms |
504 KB |
Output is correct |
14 |
Correct |
4 ms |
508 KB |
Output is correct |
15 |
Correct |
4 ms |
504 KB |
Output is correct |
16 |
Correct |
4 ms |
504 KB |
Output is correct |
17 |
Correct |
4 ms |
504 KB |
Output is correct |
18 |
Correct |
4 ms |
504 KB |
Output is correct |
19 |
Correct |
2 ms |
256 KB |
Output is correct |
20 |
Correct |
2 ms |
256 KB |
Output is correct |
21 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
472 ms |
19084 KB |
Output is correct |
2 |
Correct |
464 ms |
19576 KB |
Output is correct |
3 |
Correct |
479 ms |
20136 KB |
Output is correct |
4 |
Correct |
452 ms |
19516 KB |
Output is correct |
5 |
Correct |
459 ms |
20212 KB |
Output is correct |
6 |
Correct |
248 ms |
20472 KB |
Output is correct |
7 |
Correct |
248 ms |
20604 KB |
Output is correct |
8 |
Correct |
432 ms |
20472 KB |
Output is correct |
9 |
Correct |
411 ms |
20856 KB |
Output is correct |
10 |
Correct |
398 ms |
19576 KB |
Output is correct |
11 |
Correct |
244 ms |
20564 KB |
Output is correct |
12 |
Correct |
238 ms |
20960 KB |
Output is correct |
13 |
Correct |
232 ms |
26104 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
504 KB |
Output is correct |
2 |
Correct |
5 ms |
500 KB |
Output is correct |
3 |
Correct |
5 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
3 ms |
504 KB |
Output is correct |
6 |
Correct |
5 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
504 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
4 ms |
508 KB |
Output is correct |
12 |
Correct |
4 ms |
504 KB |
Output is correct |
13 |
Correct |
4 ms |
504 KB |
Output is correct |
14 |
Correct |
4 ms |
508 KB |
Output is correct |
15 |
Correct |
4 ms |
504 KB |
Output is correct |
16 |
Correct |
4 ms |
504 KB |
Output is correct |
17 |
Correct |
4 ms |
504 KB |
Output is correct |
18 |
Correct |
4 ms |
504 KB |
Output is correct |
19 |
Correct |
2 ms |
256 KB |
Output is correct |
20 |
Correct |
2 ms |
256 KB |
Output is correct |
21 |
Correct |
2 ms |
376 KB |
Output is correct |
22 |
Correct |
472 ms |
19084 KB |
Output is correct |
23 |
Correct |
464 ms |
19576 KB |
Output is correct |
24 |
Correct |
479 ms |
20136 KB |
Output is correct |
25 |
Correct |
452 ms |
19516 KB |
Output is correct |
26 |
Correct |
459 ms |
20212 KB |
Output is correct |
27 |
Correct |
248 ms |
20472 KB |
Output is correct |
28 |
Correct |
248 ms |
20604 KB |
Output is correct |
29 |
Correct |
432 ms |
20472 KB |
Output is correct |
30 |
Correct |
411 ms |
20856 KB |
Output is correct |
31 |
Correct |
398 ms |
19576 KB |
Output is correct |
32 |
Correct |
244 ms |
20564 KB |
Output is correct |
33 |
Correct |
238 ms |
20960 KB |
Output is correct |
34 |
Correct |
232 ms |
26104 KB |
Output is correct |
35 |
Correct |
461 ms |
24696 KB |
Output is correct |
36 |
Correct |
558 ms |
26024 KB |
Output is correct |
37 |
Correct |
546 ms |
26844 KB |
Output is correct |
38 |
Correct |
572 ms |
26456 KB |
Output is correct |
39 |
Correct |
523 ms |
26676 KB |
Output is correct |
40 |
Correct |
542 ms |
26616 KB |
Output is correct |
41 |
Correct |
494 ms |
26360 KB |
Output is correct |
42 |
Correct |
523 ms |
26696 KB |
Output is correct |
43 |
Correct |
468 ms |
25720 KB |
Output is correct |
44 |
Correct |
484 ms |
26104 KB |
Output is correct |
45 |
Correct |
443 ms |
26256 KB |
Output is correct |
46 |
Correct |
457 ms |
27372 KB |
Output is correct |
47 |
Correct |
244 ms |
25768 KB |
Output is correct |
48 |
Correct |
227 ms |
25720 KB |
Output is correct |
49 |
Correct |
431 ms |
24832 KB |
Output is correct |
50 |
Correct |
249 ms |
25616 KB |
Output is correct |
51 |
Correct |
237 ms |
26096 KB |
Output is correct |
52 |
Correct |
313 ms |
25856 KB |
Output is correct |