Submission #941725

# Submission time Handle Problem Language Result Execution time Memory
941725 2024-03-09T11:00:25 Z Litusiano Snowball (JOI21_ho_t2) C++17
100 / 100
524 ms 17648 KB
#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