# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
926881 | 2024-02-14T03:33:23 Z | haru09 | Foehn Phenomena (JOI17_foehn_phenomena) | C++17 | 111 ms | 12560 KB |
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define task "code" const int ar=2e5+5; const ll mod=1e9+7; int n,q,s,t; int a[ar]; ll ans=0; ll bit[ar]; void update(int u,int v) { int id=u; while(id<=n+1) { bit[id]+=v; id+=id&(-id); } } ll get(int p) { int id=p; ll ans=0; while(id>0) { ans+=bit[id]; id-=id&(-id); } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); if (fopen(task".inp","r")) { freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } cin>>n>>q>>s>>t; for (int i=0;i<=n;i++) { cin>>a[i]; if (i) update(i,a[i]),update(i+1,-a[i]); } for (int i=1;i<=n;i++) { if (a[i]>a[i-1]) ans-=1ll*s*(a[i]-a[i-1]); else ans+=1ll*t*(a[i-1]-a[i]); } while(q--) { int l,r,x; ll val1,val2; cin>>l>>r>>x; val1=get(l); val2=get(l-1); if (val1>val2) ans+=(val1-val2)*s; else ans-=(val2-val1)*t; if (r<n) { val1=get(r+1); val2=get(r); if (val1>val2) ans+=(val1-val2)*s; else ans-=(val2-val1)*t; } update(l,x); update(r+1,-x); val1=get(l); val2=get(l-1); if (val1>val2) ans-=(val1-val2)*s; else ans+=(val2-val1)*t; if (r<n) { val1=get(r+1); val2=get(r); if (val1>val2) ans-=(val1-val2)*s; else ans+=(val2-val1)*t; } cout<<ans<<'\n'; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2396 KB | Output is correct |
2 | Correct | 1 ms | 2396 KB | Output is correct |
3 | Correct | 1 ms | 2396 KB | Output is correct |
4 | Correct | 2 ms | 2396 KB | Output is correct |
5 | Correct | 1 ms | 2528 KB | Output is correct |
6 | Correct | 1 ms | 2396 KB | Output is correct |
7 | Correct | 1 ms | 2396 KB | Output is correct |
8 | Correct | 1 ms | 2392 KB | Output is correct |
9 | Correct | 1 ms | 2580 KB | Output is correct |
10 | Correct | 2 ms | 2396 KB | Output is correct |
11 | Correct | 1 ms | 2396 KB | Output is correct |
12 | Correct | 2 ms | 2396 KB | Output is correct |
13 | Correct | 1 ms | 2396 KB | Output is correct |
14 | Correct | 1 ms | 2396 KB | Output is correct |
15 | Correct | 1 ms | 2396 KB | Output is correct |
16 | Correct | 1 ms | 2392 KB | Output is correct |
17 | Correct | 2 ms | 2576 KB | Output is correct |
18 | Correct | 1 ms | 2396 KB | Output is correct |
19 | Correct | 0 ms | 2396 KB | Output is correct |
20 | Correct | 1 ms | 2396 KB | Output is correct |
21 | Correct | 0 ms | 2396 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 104 ms | 9396 KB | Output is correct |
2 | Correct | 108 ms | 10048 KB | Output is correct |
3 | Correct | 111 ms | 10636 KB | Output is correct |
4 | Correct | 100 ms | 9992 KB | Output is correct |
5 | Correct | 104 ms | 11372 KB | Output is correct |
6 | Correct | 71 ms | 10464 KB | Output is correct |
7 | Correct | 70 ms | 10324 KB | Output is correct |
8 | Correct | 99 ms | 11092 KB | Output is correct |
9 | Correct | 98 ms | 11344 KB | Output is correct |
10 | Correct | 96 ms | 10068 KB | Output is correct |
11 | Correct | 72 ms | 10068 KB | Output is correct |
12 | Correct | 69 ms | 11020 KB | Output is correct |
13 | Correct | 70 ms | 11496 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2396 KB | Output is correct |
2 | Correct | 1 ms | 2396 KB | Output is correct |
3 | Correct | 1 ms | 2396 KB | Output is correct |
4 | Correct | 2 ms | 2396 KB | Output is correct |
5 | Correct | 1 ms | 2528 KB | Output is correct |
6 | Correct | 1 ms | 2396 KB | Output is correct |
7 | Correct | 1 ms | 2396 KB | Output is correct |
8 | Correct | 1 ms | 2392 KB | Output is correct |
9 | Correct | 1 ms | 2580 KB | Output is correct |
10 | Correct | 2 ms | 2396 KB | Output is correct |
11 | Correct | 1 ms | 2396 KB | Output is correct |
12 | Correct | 2 ms | 2396 KB | Output is correct |
13 | Correct | 1 ms | 2396 KB | Output is correct |
14 | Correct | 1 ms | 2396 KB | Output is correct |
15 | Correct | 1 ms | 2396 KB | Output is correct |
16 | Correct | 1 ms | 2392 KB | Output is correct |
17 | Correct | 2 ms | 2576 KB | Output is correct |
18 | Correct | 1 ms | 2396 KB | Output is correct |
19 | Correct | 0 ms | 2396 KB | Output is correct |
20 | Correct | 1 ms | 2396 KB | Output is correct |
21 | Correct | 0 ms | 2396 KB | Output is correct |
22 | Correct | 104 ms | 9396 KB | Output is correct |
23 | Correct | 108 ms | 10048 KB | Output is correct |
24 | Correct | 111 ms | 10636 KB | Output is correct |
25 | Correct | 100 ms | 9992 KB | Output is correct |
26 | Correct | 104 ms | 11372 KB | Output is correct |
27 | Correct | 71 ms | 10464 KB | Output is correct |
28 | Correct | 70 ms | 10324 KB | Output is correct |
29 | Correct | 99 ms | 11092 KB | Output is correct |
30 | Correct | 98 ms | 11344 KB | Output is correct |
31 | Correct | 96 ms | 10068 KB | Output is correct |
32 | Correct | 72 ms | 10068 KB | Output is correct |
33 | Correct | 69 ms | 11020 KB | Output is correct |
34 | Correct | 70 ms | 11496 KB | Output is correct |
35 | Correct | 106 ms | 9804 KB | Output is correct |
36 | Correct | 105 ms | 11088 KB | Output is correct |
37 | Correct | 109 ms | 11860 KB | Output is correct |
38 | Correct | 110 ms | 11856 KB | Output is correct |
39 | Correct | 108 ms | 11604 KB | Output is correct |
40 | Correct | 108 ms | 11776 KB | Output is correct |
41 | Correct | 107 ms | 11604 KB | Output is correct |
42 | Correct | 108 ms | 11608 KB | Output is correct |
43 | Correct | 110 ms | 10980 KB | Output is correct |
44 | Correct | 109 ms | 11344 KB | Output is correct |
45 | Correct | 101 ms | 11352 KB | Output is correct |
46 | Correct | 110 ms | 12560 KB | Output is correct |
47 | Correct | 77 ms | 10944 KB | Output is correct |
48 | Correct | 79 ms | 11016 KB | Output is correct |
49 | Correct | 101 ms | 9908 KB | Output is correct |
50 | Correct | 74 ms | 10836 KB | Output is correct |
51 | Correct | 70 ms | 11092 KB | Output is correct |
52 | Correct | 73 ms | 10952 KB | Output is correct |