#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
const int inf = 1e18;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,q; cin>>n>>q;
vector<int> v(n); for(int& i : v) cin>>i;
vector<int> mn(q+1,0), mx(q+1,0);
int act = 0;
int cnt = 0;
vector<int> queries = {0};
for(int _ = 0; _<q; _++){
cnt++;
int w; cin>>w;
act+=w;
queries.push_back(w);
mn[cnt] = min(mn[cnt-1],act);
mx[cnt] = max(mx[cnt-1],act);
}
vector<pair<int,int>> intervals(n);
for(int i = 0; i<n-1; i++){
// intersection between dif
int dif = v[i+1] - v[i];
int l = 0; int r = q+1;
while(r > l+1){
int m = (l+r)/2;
if(abs(mn[m]) + mx[m] >= dif) r = m;
else l = m;
}
cerr<<r<<" ";
if(r == q+1){
intervals[i].second = mx[q];
intervals[i+1].first = mn[q];
}
else{
// intersects here
if(queries[r] > 0){
// mn rules
intervals[i+1].first = mn[r];
intervals[i].second = v[i+1] + mn[r] - v[i];
}
else{
intervals[i].second = mx[r];
intervals[i+1].first = -(v[i+1] - (v[i] + mx[r]));
}
}
}
// cerr<<"END R"<<endl;
intervals[0].first = mn[q];
intervals[n-1].second = mx[q];
for(auto x : intervals){
// cout<<x.first<<" "<<x.second<<" ";
cout<<x.second - x.first<<endl;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
544 KB |
Output is correct |
4 |
Correct |
5 ms |
604 KB |
Output is correct |
5 |
Correct |
5 ms |
612 KB |
Output is correct |
6 |
Correct |
5 ms |
600 KB |
Output is correct |
7 |
Correct |
5 ms |
472 KB |
Output is correct |
8 |
Correct |
6 ms |
600 KB |
Output is correct |
9 |
Correct |
5 ms |
856 KB |
Output is correct |
10 |
Correct |
5 ms |
604 KB |
Output is correct |
11 |
Correct |
5 ms |
612 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
1 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
5 ms |
600 KB |
Output is correct |
16 |
Correct |
5 ms |
604 KB |
Output is correct |
17 |
Correct |
6 ms |
616 KB |
Output is correct |
18 |
Correct |
0 ms |
348 KB |
Output is correct |
19 |
Correct |
5 ms |
600 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
544 KB |
Output is correct |
4 |
Correct |
5 ms |
604 KB |
Output is correct |
5 |
Correct |
5 ms |
612 KB |
Output is correct |
6 |
Correct |
5 ms |
600 KB |
Output is correct |
7 |
Correct |
5 ms |
472 KB |
Output is correct |
8 |
Correct |
6 ms |
600 KB |
Output is correct |
9 |
Correct |
5 ms |
856 KB |
Output is correct |
10 |
Correct |
5 ms |
604 KB |
Output is correct |
11 |
Correct |
5 ms |
612 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
1 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
5 ms |
600 KB |
Output is correct |
16 |
Correct |
5 ms |
604 KB |
Output is correct |
17 |
Correct |
6 ms |
616 KB |
Output is correct |
18 |
Correct |
0 ms |
348 KB |
Output is correct |
19 |
Correct |
5 ms |
600 KB |
Output is correct |
20 |
Correct |
22 ms |
7384 KB |
Output is correct |
21 |
Correct |
20 ms |
7212 KB |
Output is correct |
22 |
Correct |
20 ms |
7124 KB |
Output is correct |
23 |
Correct |
23 ms |
6868 KB |
Output is correct |
24 |
Correct |
66 ms |
7372 KB |
Output is correct |
25 |
Correct |
515 ms |
16844 KB |
Output is correct |
26 |
Correct |
512 ms |
16376 KB |
Output is correct |
27 |
Correct |
524 ms |
15952 KB |
Output is correct |
28 |
Correct |
522 ms |
16392 KB |
Output is correct |
29 |
Correct |
513 ms |
15816 KB |
Output is correct |
30 |
Correct |
515 ms |
15040 KB |
Output is correct |
31 |
Correct |
487 ms |
14724 KB |
Output is correct |
32 |
Correct |
476 ms |
14544 KB |
Output is correct |
33 |
Correct |
51 ms |
2000 KB |
Output is correct |
34 |
Correct |
521 ms |
16884 KB |
Output is correct |
35 |
Correct |
516 ms |
16592 KB |
Output is correct |
36 |
Correct |
521 ms |
16600 KB |
Output is correct |
37 |
Correct |
519 ms |
16336 KB |
Output is correct |
38 |
Correct |
514 ms |
15996 KB |
Output is correct |
39 |
Correct |
517 ms |
16248 KB |
Output is correct |
40 |
Correct |
499 ms |
16520 KB |
Output is correct |
41 |
Correct |
21 ms |
7884 KB |
Output is correct |
42 |
Correct |
474 ms |
14892 KB |
Output is correct |
43 |
Correct |
488 ms |
17116 KB |
Output is correct |
44 |
Correct |
23 ms |
7892 KB |
Output is correct |
45 |
Correct |
493 ms |
16396 KB |
Output is correct |
46 |
Correct |
483 ms |
17136 KB |
Output is correct |
47 |
Correct |
494 ms |
17576 KB |
Output is correct |
48 |
Correct |
489 ms |
17648 KB |
Output is correct |