Submission #573944

# Submission time Handle Problem Language Result Execution time Memory
573944 2022-06-07T12:55:07 Z moday_morning A Difficult(y) Choice (BOI21_books) C++17
60 / 100
2 ms 336 KB
#include <bits/stdc++.h>
#include "books.h"
#ifndef EVAL
#include "grader.cpp"
#endif
using namespace std;
 
map <int, long long> mp;
long long all(int k, int p) {
	long long sum = 0;
	for (int i = 0; i < k; i++) {
		int pos = i + 1 + p;
		if (mp.find(pos) == mp.end()) {
			mp[pos] = skim(pos); 
		}
		sum += mp[pos];
	}
	return sum;
}
 
void solve(int N, int K, long long A, int S) {
	int l = 0, r = N - K + 1; 
	long long left = 2 * A / K, rr = (A + K - 1) / K;
	while (l <= r) {
		int mid = (l + r) / 2;
		long long check = all(1, mid), check2 = all(1, mid + K - 1);
		if (left < check) {
			r = mid - 1;
		}
		else if (rr > check2) {
			l = mid + 1;
		}
		else {
			if (A * 2 < all(K, mid)) {
				r = mid - 1;
			}
			else if (A > all(K, mid)) {
				l = mid + 1;
			}
			else {
				vector <int> st;
				for (int i = 0; i < K; i++) {
					int pos = mid + i + 1;
					st.push_back(pos);
				}
				answer(st);
				return;
			}
		}
	}
	l = K;
	r = N - 1;
	while (l <= r) {
		int mid = (l + r) / 2;
		long long check = all(K - 1, 0) + all(1, mid);
		if (A * 2 < check) {
			r = mid - 1;
		}
		else if (A > check) {
			l = mid + 1;
		}
		else {
			vector <int> st;
			for (int i = 0; i < K - 1; i++) {
				int pos = i + 1;
				st.push_back(pos);
			}
			st.push_back(mid + 1);
			answer(st);
			return;
		}
	}
	impossible();
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 2 ms 208 KB Output is correct
6 Correct 1 ms 208 KB Output is correct
7 Correct 1 ms 208 KB Output is correct
8 Correct 2 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 288 KB Output is correct
7 Correct 1 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 208 KB Output is correct
10 Correct 1 ms 208 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 208 KB Output is correct
13 Correct 1 ms 208 KB Output is correct
14 Correct 1 ms 304 KB Output is correct
15 Correct 2 ms 336 KB Output is correct
16 Correct 2 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 272 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 2 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 292 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 272 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 2 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 292 KB Output is correct
10 Correct 1 ms 288 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Correct 2 ms 208 KB Output is correct
14 Correct 1 ms 208 KB Output is correct
15 Correct 1 ms 208 KB Output is correct
16 Correct 1 ms 292 KB Output is correct
17 Correct 1 ms 280 KB Output is correct
18 Correct 1 ms 280 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 288 KB Output is correct
21 Correct 1 ms 288 KB Output is correct
22 Correct 2 ms 280 KB Output is correct
23 Correct 2 ms 300 KB Output is correct
24 Correct 1 ms 208 KB Output is correct
25 Correct 1 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 272 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 2 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 292 KB Output is correct
10 Correct 1 ms 288 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Correct 2 ms 208 KB Output is correct
14 Correct 1 ms 208 KB Output is correct
15 Correct 1 ms 208 KB Output is correct
16 Correct 1 ms 292 KB Output is correct
17 Correct 1 ms 280 KB Output is correct
18 Correct 1 ms 280 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 288 KB Output is correct
21 Correct 1 ms 288 KB Output is correct
22 Correct 2 ms 280 KB Output is correct
23 Correct 2 ms 300 KB Output is correct
24 Correct 1 ms 208 KB Output is correct
25 Correct 1 ms 208 KB Output is correct
26 Correct 1 ms 208 KB Output is correct
27 Correct 2 ms 208 KB Output is correct
28 Correct 1 ms 208 KB Output is correct
29 Correct 2 ms 208 KB Output is correct
30 Correct 2 ms 276 KB Output is correct
31 Correct 1 ms 208 KB Output is correct
32 Correct 1 ms 284 KB Output is correct
33 Correct 1 ms 208 KB Output is correct
34 Correct 2 ms 292 KB Output is correct
35 Correct 2 ms 208 KB Output is correct
36 Correct 2 ms 208 KB Output is correct
37 Correct 1 ms 292 KB Output is correct
38 Correct 1 ms 208 KB Output is correct
39 Correct 2 ms 208 KB Output is correct
40 Correct 1 ms 280 KB Output is correct
41 Correct 1 ms 300 KB Output is correct
42 Correct 1 ms 208 KB Output is correct
43 Correct 2 ms 280 KB Output is correct
44 Correct 1 ms 296 KB Output is correct
45 Correct 2 ms 208 KB Output is correct
46 Correct 1 ms 208 KB Output is correct
47 Correct 2 ms 208 KB Output is correct
48 Correct 1 ms 300 KB Output is correct
49 Correct 1 ms 208 KB Output is correct
50 Correct 1 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 272 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 2 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 292 KB Output is correct
10 Correct 1 ms 288 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Correct 2 ms 208 KB Output is correct
14 Correct 1 ms 208 KB Output is correct
15 Correct 1 ms 208 KB Output is correct
16 Correct 1 ms 292 KB Output is correct
17 Correct 1 ms 280 KB Output is correct
18 Correct 1 ms 280 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 288 KB Output is correct
21 Correct 1 ms 288 KB Output is correct
22 Correct 2 ms 280 KB Output is correct
23 Correct 2 ms 300 KB Output is correct
24 Correct 1 ms 208 KB Output is correct
25 Correct 1 ms 208 KB Output is correct
26 Correct 1 ms 208 KB Output is correct
27 Correct 1 ms 208 KB Output is correct
28 Correct 1 ms 208 KB Output is correct
29 Correct 1 ms 292 KB Output is correct
30 Correct 1 ms 208 KB Output is correct
31 Correct 1 ms 208 KB Output is correct
32 Correct 1 ms 208 KB Output is correct
33 Correct 2 ms 288 KB Output is correct
34 Correct 1 ms 208 KB Output is correct
35 Correct 1 ms 208 KB Output is correct
36 Correct 0 ms 208 KB Output is correct
37 Correct 1 ms 208 KB Output is correct
38 Correct 1 ms 208 KB Output is correct
39 Correct 1 ms 280 KB Output is correct
40 Correct 1 ms 304 KB Output is correct
41 Correct 1 ms 296 KB Output is correct
42 Correct 1 ms 208 KB Output is correct
43 Runtime error 1 ms 300 KB Execution killed with signal 13
44 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 272 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 2 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 292 KB Output is correct
10 Correct 1 ms 288 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Correct 2 ms 208 KB Output is correct
14 Correct 1 ms 208 KB Output is correct
15 Correct 1 ms 208 KB Output is correct
16 Correct 1 ms 292 KB Output is correct
17 Correct 1 ms 280 KB Output is correct
18 Correct 1 ms 280 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 288 KB Output is correct
21 Correct 1 ms 288 KB Output is correct
22 Correct 2 ms 280 KB Output is correct
23 Correct 2 ms 300 KB Output is correct
24 Correct 1 ms 208 KB Output is correct
25 Correct 1 ms 208 KB Output is correct
26 Correct 1 ms 208 KB Output is correct
27 Correct 2 ms 208 KB Output is correct
28 Correct 1 ms 208 KB Output is correct
29 Correct 2 ms 208 KB Output is correct
30 Correct 2 ms 276 KB Output is correct
31 Correct 1 ms 208 KB Output is correct
32 Correct 1 ms 284 KB Output is correct
33 Correct 1 ms 208 KB Output is correct
34 Correct 2 ms 292 KB Output is correct
35 Correct 2 ms 208 KB Output is correct
36 Correct 2 ms 208 KB Output is correct
37 Correct 1 ms 292 KB Output is correct
38 Correct 1 ms 208 KB Output is correct
39 Correct 2 ms 208 KB Output is correct
40 Correct 1 ms 280 KB Output is correct
41 Correct 1 ms 300 KB Output is correct
42 Correct 1 ms 208 KB Output is correct
43 Correct 2 ms 280 KB Output is correct
44 Correct 1 ms 296 KB Output is correct
45 Correct 2 ms 208 KB Output is correct
46 Correct 1 ms 208 KB Output is correct
47 Correct 2 ms 208 KB Output is correct
48 Correct 1 ms 300 KB Output is correct
49 Correct 1 ms 208 KB Output is correct
50 Correct 1 ms 208 KB Output is correct
51 Correct 1 ms 208 KB Output is correct
52 Correct 1 ms 208 KB Output is correct
53 Correct 1 ms 208 KB Output is correct
54 Correct 1 ms 292 KB Output is correct
55 Correct 1 ms 208 KB Output is correct
56 Correct 1 ms 208 KB Output is correct
57 Correct 1 ms 208 KB Output is correct
58 Correct 2 ms 288 KB Output is correct
59 Correct 1 ms 208 KB Output is correct
60 Correct 1 ms 208 KB Output is correct
61 Correct 0 ms 208 KB Output is correct
62 Correct 1 ms 208 KB Output is correct
63 Correct 1 ms 208 KB Output is correct
64 Correct 1 ms 280 KB Output is correct
65 Correct 1 ms 304 KB Output is correct
66 Correct 1 ms 296 KB Output is correct
67 Correct 1 ms 208 KB Output is correct
68 Runtime error 1 ms 300 KB Execution killed with signal 13
69 Halted 0 ms 0 KB -