#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
long long all[200005],now=1;
struct A
{
long long l,r;
long long nxl,nxr;
long long add;
}Node[2000005];
void build(long long l,long long r,long long here)
{
Node[here].l=l;
Node[here].r=r;
Node[here].add=0;
if(l==r)
{
Node[here].add=all[l];
return;
}
Node[here].nxl=now++;
Node[here].nxr=now++;
build(l,(l+r)/2,Node[here].nxl);
build((l+r)/2+1,r,Node[here].nxr);
}
long long Find(long long where,long long here)
{
if(Node[here].l==where&&Node[here].r==where) return Node[here].add;
if(where<=(Node[here].l+Node[here].r)/2) return Find(where,Node[here].nxl)+Node[here].add;
else return Find(where,Node[here].nxr)+Node[here].add;
}
void add(long long l,long long r,long long con,long long here)
{
if(l==Node[here].l&&r==Node[here].r)
{
Node[here].add+=con;
return;
}
if(r<=(Node[here].l+Node[here].r)/2) add(l,r,con,Node[here].nxl);
else if(l>(Node[here].l+Node[here].r)/2) add(l,r,con,Node[here].nxr);
else
{
add(l,(Node[here].l+Node[here].r)/2,con,Node[here].nxl);
add((Node[here].l+Node[here].r)/2+1,r,con,Node[here].nxr);
}
}
int main()
{
long long N,M,S,T,l,r,x,y,tt=0,con,i;
scanf("%lld %lld %lld %lld",&N,&M,&S,&T);
for(i=0;i<=N;i++)
{
scanf("%lld",&all[i]);
if(i&&all[i-1]<all[i]) tt-=abs(all[i]-all[i-1])*S;
if(i&&all[i-1]>=all[i]) tt+=abs(all[i]-all[i-1])*T;
}
build(0,N,0);
//printf("%lld\n",tt);
while(M--)
{
scanf("%lld %lld %lld",&l,&r,&con);
x=Find(l,0);
y=Find(l-1,0);
if(y<x) tt+=abs(x-y)*S;
if(y>=x) tt-=abs(x-y)*T;
if(r!=N)
{
x=Find(r+1,0);
y=Find(r,0);
if(y<x) tt+=abs(x-y)*S;
if(y>=x) tt-=abs(x-y)*T;
//printf("%lld %lld\n",x,y);
}
add(l,r,con,0);
x=Find(l,0);
y=Find(l-1,0);
if(y<x) tt-=abs(x-y)*S;
if(y>=x) tt+=abs(x-y)*T;
if(r!=N)
{
x=Find(r+1,0);
y=Find(r,0);
if(y<x) tt-=abs(x-y)*S;
if(y>=x) tt+=abs(x-y)*T;
//printf("%lld %lld\n",x,y);
}
printf("%lld\n",tt);
}
return 0;
}
Compilation message
foehn_phenomena.cpp: In function 'int main()':
foehn_phenomena.cpp:52:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
52 | scanf("%lld %lld %lld %lld",&N,&M,&S,&T);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foehn_phenomena.cpp:55:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
55 | scanf("%lld",&all[i]);
| ~~~~~^~~~~~~~~~~~~~~~
foehn_phenomena.cpp:63:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
63 | scanf("%lld %lld %lld",&l,&r,&con);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
620 KB |
Output is correct |
2 |
Correct |
4 ms |
620 KB |
Output is correct |
3 |
Correct |
5 ms |
620 KB |
Output is correct |
4 |
Correct |
5 ms |
620 KB |
Output is correct |
5 |
Correct |
5 ms |
620 KB |
Output is correct |
6 |
Correct |
4 ms |
620 KB |
Output is correct |
7 |
Correct |
4 ms |
620 KB |
Output is correct |
8 |
Correct |
4 ms |
620 KB |
Output is correct |
9 |
Correct |
4 ms |
620 KB |
Output is correct |
10 |
Correct |
4 ms |
620 KB |
Output is correct |
11 |
Correct |
4 ms |
620 KB |
Output is correct |
12 |
Correct |
5 ms |
748 KB |
Output is correct |
13 |
Correct |
2 ms |
620 KB |
Output is correct |
14 |
Correct |
3 ms |
620 KB |
Output is correct |
15 |
Correct |
4 ms |
620 KB |
Output is correct |
16 |
Correct |
3 ms |
620 KB |
Output is correct |
17 |
Correct |
2 ms |
620 KB |
Output is correct |
18 |
Correct |
3 ms |
748 KB |
Output is correct |
19 |
Correct |
1 ms |
364 KB |
Output is correct |
20 |
Correct |
1 ms |
364 KB |
Output is correct |
21 |
Correct |
1 ms |
364 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
719 ms |
24428 KB |
Output is correct |
2 |
Correct |
731 ms |
25196 KB |
Output is correct |
3 |
Correct |
721 ms |
25580 KB |
Output is correct |
4 |
Correct |
711 ms |
25068 KB |
Output is correct |
5 |
Correct |
714 ms |
26236 KB |
Output is correct |
6 |
Correct |
242 ms |
25196 KB |
Output is correct |
7 |
Correct |
246 ms |
25196 KB |
Output is correct |
8 |
Correct |
563 ms |
25964 KB |
Output is correct |
9 |
Correct |
571 ms |
26348 KB |
Output is correct |
10 |
Correct |
592 ms |
25048 KB |
Output is correct |
11 |
Correct |
286 ms |
25156 KB |
Output is correct |
12 |
Correct |
243 ms |
25836 KB |
Output is correct |
13 |
Correct |
241 ms |
25964 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
620 KB |
Output is correct |
2 |
Correct |
4 ms |
620 KB |
Output is correct |
3 |
Correct |
5 ms |
620 KB |
Output is correct |
4 |
Correct |
5 ms |
620 KB |
Output is correct |
5 |
Correct |
5 ms |
620 KB |
Output is correct |
6 |
Correct |
4 ms |
620 KB |
Output is correct |
7 |
Correct |
4 ms |
620 KB |
Output is correct |
8 |
Correct |
4 ms |
620 KB |
Output is correct |
9 |
Correct |
4 ms |
620 KB |
Output is correct |
10 |
Correct |
4 ms |
620 KB |
Output is correct |
11 |
Correct |
4 ms |
620 KB |
Output is correct |
12 |
Correct |
5 ms |
748 KB |
Output is correct |
13 |
Correct |
2 ms |
620 KB |
Output is correct |
14 |
Correct |
3 ms |
620 KB |
Output is correct |
15 |
Correct |
4 ms |
620 KB |
Output is correct |
16 |
Correct |
3 ms |
620 KB |
Output is correct |
17 |
Correct |
2 ms |
620 KB |
Output is correct |
18 |
Correct |
3 ms |
748 KB |
Output is correct |
19 |
Correct |
1 ms |
364 KB |
Output is correct |
20 |
Correct |
1 ms |
364 KB |
Output is correct |
21 |
Correct |
1 ms |
364 KB |
Output is correct |
22 |
Correct |
719 ms |
24428 KB |
Output is correct |
23 |
Correct |
731 ms |
25196 KB |
Output is correct |
24 |
Correct |
721 ms |
25580 KB |
Output is correct |
25 |
Correct |
711 ms |
25068 KB |
Output is correct |
26 |
Correct |
714 ms |
26236 KB |
Output is correct |
27 |
Correct |
242 ms |
25196 KB |
Output is correct |
28 |
Correct |
246 ms |
25196 KB |
Output is correct |
29 |
Correct |
563 ms |
25964 KB |
Output is correct |
30 |
Correct |
571 ms |
26348 KB |
Output is correct |
31 |
Correct |
592 ms |
25048 KB |
Output is correct |
32 |
Correct |
286 ms |
25156 KB |
Output is correct |
33 |
Correct |
243 ms |
25836 KB |
Output is correct |
34 |
Correct |
241 ms |
25964 KB |
Output is correct |
35 |
Correct |
715 ms |
24556 KB |
Output is correct |
36 |
Correct |
717 ms |
26092 KB |
Output is correct |
37 |
Correct |
718 ms |
26860 KB |
Output is correct |
38 |
Correct |
720 ms |
26612 KB |
Output is correct |
39 |
Correct |
726 ms |
26732 KB |
Output is correct |
40 |
Correct |
712 ms |
26732 KB |
Output is correct |
41 |
Correct |
721 ms |
26604 KB |
Output is correct |
42 |
Correct |
722 ms |
26604 KB |
Output is correct |
43 |
Correct |
709 ms |
25836 KB |
Output is correct |
44 |
Correct |
708 ms |
26220 KB |
Output is correct |
45 |
Correct |
703 ms |
26220 KB |
Output is correct |
46 |
Correct |
717 ms |
27372 KB |
Output is correct |
47 |
Correct |
243 ms |
25836 KB |
Output is correct |
48 |
Correct |
268 ms |
25836 KB |
Output is correct |
49 |
Correct |
693 ms |
24812 KB |
Output is correct |
50 |
Correct |
283 ms |
25836 KB |
Output is correct |
51 |
Correct |
247 ms |
25956 KB |
Output is correct |
52 |
Correct |
351 ms |
25968 KB |
Output is correct |