#include<bits/stdc++.h>
using namespace std;
long long n,q,s,t;
long long a[200200];
long long base=0;
struct NODE
{
long long add=0;
NODE *l=NULL,*r=NULL;
} *root;
NODE* build(int l,int r)
{
NODE *ptr = new NODE;
if(l==r)
{
ptr->add=a[l];
return ptr;
}
int mid=(l+r)/2;
ptr->l=build(l,mid);
ptr->r=build(mid+1,r);
return ptr;
}
long long val;
int ll,rr;
void update(NODE *ptr,int l,int r)
{
if(ll<=l&&r<=rr)
{
ptr->add+=val;
return ;
}
else if(r<ll||rr<l)
return ;
int mid=(l+r)/2;
update(ptr->l,l,mid);
update(ptr->r,mid+1,r);
return ;
}
int po;
long long query(NODE *ptr,int l,int r)
{
if(l==r)
return ptr->add;
int mid=(l+r)/2;
if(po<=mid)
return ptr->add+query(ptr->l,l,mid);
else
return ptr->add+query(ptr->r,mid+1,r);
}
main()
{
scanf("%lld %lld %lld %lld",&n,&q,&s,&t);
for(int i=0;i<n+1;i++)
{
scanf("%lld",&a[i]);
if(i)
{
if(a[i-1]<a[i])
base-=s*(a[i]-a[i-1]);
else
base+=t*(a[i-1]-a[i]);
}
}
root=build(0,n);
//printf("%lld\n",base);
for(int i=0;i<q;i++)
{
long long l,r,x;
scanf("%lld %lld %lld",&l,&r,&x);
long long cha=0;
po=l-1;
long long prell=query(root,0,n);
po=l;
long long prel=query(root,0,n);
//printf("-%lld %lld-\n",prell,prel);
if(prell<prel)
cha-=s*(prel-prell);
else
cha+=t*(prell-prel);
if(r!=n)
{
po=r+1;
long long prerr=query(root,0,n);
po=r;
long long prer=query(root,0,n);
//printf("-%lld %lld-\n",prer,prerr);
if(prer<prerr)
cha-=s*(prerr-prer);
else
cha+=t*(prer-prerr);
}
cha*=-1;
ll=l;
rr=r;
val=x;
update(root,0,n);
po=l-1;
long long postll=query(root,0,n);
po=l;
long long postl=query(root,0,n);
//printf("-%lld %lld-\n",postll,postl);
if(postll<postl)
cha-=s*(postl-postll);
else
cha+=t*(postll-postl);
if(r!=n)
{
po=r+1;
long long postrr=query(root,0,n);
po=r;
long long postr=query(root,0,n);
//printf("-%lld %lld-\n",postr,postrr);
if(postr<postrr)
cha-=s*(postrr-postr);
else
cha+=t*(postr-postrr);
}
base+=cha;
printf("%lld\n",base);
}
}
Compilation message
foehn_phenomena.cpp:57:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
57 | main()
| ^~~~
foehn_phenomena.cpp: In function 'int main()':
foehn_phenomena.cpp:59:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
59 | scanf("%lld %lld %lld %lld",&n,&q,&s,&t);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foehn_phenomena.cpp:62:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
62 | scanf("%lld",&a[i]);
| ~~~~~^~~~~~~~~~~~~~
foehn_phenomena.cpp:76:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
76 | scanf("%lld %lld %lld",&l,&r,&x);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
340 KB |
Output is correct |
2 |
Correct |
3 ms |
468 KB |
Output is correct |
3 |
Correct |
3 ms |
448 KB |
Output is correct |
4 |
Correct |
3 ms |
468 KB |
Output is correct |
5 |
Correct |
3 ms |
468 KB |
Output is correct |
6 |
Correct |
3 ms |
508 KB |
Output is correct |
7 |
Correct |
3 ms |
468 KB |
Output is correct |
8 |
Correct |
3 ms |
444 KB |
Output is correct |
9 |
Correct |
3 ms |
596 KB |
Output is correct |
10 |
Correct |
3 ms |
468 KB |
Output is correct |
11 |
Correct |
3 ms |
468 KB |
Output is correct |
12 |
Correct |
3 ms |
468 KB |
Output is correct |
13 |
Correct |
2 ms |
468 KB |
Output is correct |
14 |
Correct |
2 ms |
492 KB |
Output is correct |
15 |
Correct |
3 ms |
444 KB |
Output is correct |
16 |
Correct |
2 ms |
492 KB |
Output is correct |
17 |
Correct |
2 ms |
468 KB |
Output is correct |
18 |
Correct |
2 ms |
512 KB |
Output is correct |
19 |
Correct |
1 ms |
212 KB |
Output is correct |
20 |
Correct |
1 ms |
212 KB |
Output is correct |
21 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
401 ms |
15812 KB |
Output is correct |
2 |
Correct |
406 ms |
16368 KB |
Output is correct |
3 |
Correct |
390 ms |
16952 KB |
Output is correct |
4 |
Correct |
462 ms |
21812 KB |
Output is correct |
5 |
Correct |
425 ms |
22860 KB |
Output is correct |
6 |
Correct |
158 ms |
22052 KB |
Output is correct |
7 |
Correct |
158 ms |
21924 KB |
Output is correct |
8 |
Correct |
344 ms |
22688 KB |
Output is correct |
9 |
Correct |
346 ms |
23044 KB |
Output is correct |
10 |
Correct |
357 ms |
21924 KB |
Output is correct |
11 |
Correct |
191 ms |
21940 KB |
Output is correct |
12 |
Correct |
167 ms |
22604 KB |
Output is correct |
13 |
Correct |
166 ms |
22740 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
340 KB |
Output is correct |
2 |
Correct |
3 ms |
468 KB |
Output is correct |
3 |
Correct |
3 ms |
448 KB |
Output is correct |
4 |
Correct |
3 ms |
468 KB |
Output is correct |
5 |
Correct |
3 ms |
468 KB |
Output is correct |
6 |
Correct |
3 ms |
508 KB |
Output is correct |
7 |
Correct |
3 ms |
468 KB |
Output is correct |
8 |
Correct |
3 ms |
444 KB |
Output is correct |
9 |
Correct |
3 ms |
596 KB |
Output is correct |
10 |
Correct |
3 ms |
468 KB |
Output is correct |
11 |
Correct |
3 ms |
468 KB |
Output is correct |
12 |
Correct |
3 ms |
468 KB |
Output is correct |
13 |
Correct |
2 ms |
468 KB |
Output is correct |
14 |
Correct |
2 ms |
492 KB |
Output is correct |
15 |
Correct |
3 ms |
444 KB |
Output is correct |
16 |
Correct |
2 ms |
492 KB |
Output is correct |
17 |
Correct |
2 ms |
468 KB |
Output is correct |
18 |
Correct |
2 ms |
512 KB |
Output is correct |
19 |
Correct |
1 ms |
212 KB |
Output is correct |
20 |
Correct |
1 ms |
212 KB |
Output is correct |
21 |
Correct |
1 ms |
212 KB |
Output is correct |
22 |
Correct |
401 ms |
15812 KB |
Output is correct |
23 |
Correct |
406 ms |
16368 KB |
Output is correct |
24 |
Correct |
390 ms |
16952 KB |
Output is correct |
25 |
Correct |
462 ms |
21812 KB |
Output is correct |
26 |
Correct |
425 ms |
22860 KB |
Output is correct |
27 |
Correct |
158 ms |
22052 KB |
Output is correct |
28 |
Correct |
158 ms |
21924 KB |
Output is correct |
29 |
Correct |
344 ms |
22688 KB |
Output is correct |
30 |
Correct |
346 ms |
23044 KB |
Output is correct |
31 |
Correct |
357 ms |
21924 KB |
Output is correct |
32 |
Correct |
191 ms |
21940 KB |
Output is correct |
33 |
Correct |
167 ms |
22604 KB |
Output is correct |
34 |
Correct |
166 ms |
22740 KB |
Output is correct |
35 |
Correct |
421 ms |
21288 KB |
Output is correct |
36 |
Correct |
444 ms |
22728 KB |
Output is correct |
37 |
Correct |
405 ms |
23500 KB |
Output is correct |
38 |
Correct |
401 ms |
23372 KB |
Output is correct |
39 |
Correct |
444 ms |
23288 KB |
Output is correct |
40 |
Correct |
404 ms |
23304 KB |
Output is correct |
41 |
Correct |
413 ms |
23128 KB |
Output is correct |
42 |
Correct |
439 ms |
23244 KB |
Output is correct |
43 |
Correct |
428 ms |
22536 KB |
Output is correct |
44 |
Correct |
396 ms |
22912 KB |
Output is correct |
45 |
Correct |
469 ms |
23012 KB |
Output is correct |
46 |
Correct |
459 ms |
24032 KB |
Output is correct |
47 |
Correct |
163 ms |
22540 KB |
Output is correct |
48 |
Correct |
196 ms |
22572 KB |
Output is correct |
49 |
Correct |
389 ms |
21700 KB |
Output is correct |
50 |
Correct |
189 ms |
22444 KB |
Output is correct |
51 |
Correct |
158 ms |
22788 KB |
Output is correct |
52 |
Correct |
210 ms |
22604 KB |
Output is correct |