# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
522871 | 2022-02-06T08:23:32 Z | Cross_Ratio | Monochrome Points (JOI20_monochrome) | C++14 | 1347 ms | 15564 KB |
#include <bits/stdc++.h> #define int long long using namespace std; struct SegTree { vector<int> seg; int MAX; SegTree(int N) { seg.resize(N+5); MAX = N+5; } int sum(int i) { int ans = 0; while(i>0) { //cout << i << ' ' << ans << '\n'; ans += seg[i]; i -= (i&-i); } return ans; } void Edit(int i, int a) { i++; while(i<MAX) { //cout << i << '\n'; seg[i] += a; i += (i & -i); } } int sum(int s, int e) { return sum(e)-sum(s); } }; int simulate(vector<int> V) { //cout << "simul\n"; SegTree tree(V.size()+5); vector<int> used; used.resize(V.size()/2); fill(used.begin(),used.end(),-1); int ans = 0; int i; for(i=0;i<V.size();i++) { if(used[V[i]] != -1) { ans += tree.sum(used[V[i]]+1, i); tree.Edit(used[V[i]],-1); } else { tree.Edit(i, 1); used[V[i]] = i; } } return ans; } signed main() { cin.sync_with_stdio(false); cin.tie(0); cout.tie(0); int N; string s2; cin >> N >> s2; int i, j, k; vector<int> A, B; for(i=0;i<2*N;i++) { if(s2[i]=='B') A.push_back(i); else B.push_back(i); } vector<int> V; V.resize(s2.length()); for(i=0;i<A.size();i++) V[A[i]] = i; int ans = -1; int s = 0, e = N - 1; while(e-s>=3) { int l = (2*s+e)/3; int r = (s+2*e)/3; for(int j = l; j < l + N; j++) { V[B[j%N]] = j-l; } int v1 = simulate(V); for(int j = r; j < r + N; j++) { V[B[j%N]] = j-r; } int v2 = simulate(V); if(v1<v2) s = l; else e = r; } for(i=s;i<=e;i++) { for(int j = i; j < i + N; j++) { V[B[j%N]] = j-i; } ans = max(ans, simulate(V)); } cout << ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 332 KB | Output is correct |
3 | Correct | 0 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 0 ms | 204 KB | Output is correct |
12 | Correct | 1 ms | 204 KB | Output is correct |
13 | Correct | 1 ms | 204 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 332 KB | Output is correct |
3 | Correct | 0 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 0 ms | 204 KB | Output is correct |
12 | Correct | 1 ms | 204 KB | Output is correct |
13 | Correct | 1 ms | 204 KB | Output is correct |
14 | Correct | 1 ms | 332 KB | Output is correct |
15 | Correct | 1 ms | 332 KB | Output is correct |
16 | Correct | 1 ms | 332 KB | Output is correct |
17 | Correct | 1 ms | 332 KB | Output is correct |
18 | Correct | 1 ms | 332 KB | Output is correct |
19 | Correct | 1 ms | 332 KB | Output is correct |
20 | Correct | 1 ms | 332 KB | Output is correct |
21 | Correct | 1 ms | 332 KB | Output is correct |
22 | Correct | 1 ms | 332 KB | Output is correct |
23 | Correct | 1 ms | 332 KB | Output is correct |
24 | Correct | 1 ms | 332 KB | Output is correct |
25 | Correct | 1 ms | 312 KB | Output is correct |
26 | Correct | 1 ms | 332 KB | Output is correct |
27 | Correct | 1 ms | 332 KB | Output is correct |
28 | Correct | 1 ms | 332 KB | Output is correct |
29 | Correct | 1 ms | 332 KB | Output is correct |
30 | Correct | 1 ms | 332 KB | Output is correct |
31 | Correct | 1 ms | 332 KB | Output is correct |
32 | Correct | 1 ms | 332 KB | Output is correct |
33 | Correct | 1 ms | 332 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 332 KB | Output is correct |
3 | Correct | 0 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 0 ms | 204 KB | Output is correct |
12 | Correct | 1 ms | 204 KB | Output is correct |
13 | Correct | 1 ms | 204 KB | Output is correct |
14 | Correct | 1 ms | 332 KB | Output is correct |
15 | Correct | 1 ms | 332 KB | Output is correct |
16 | Correct | 1 ms | 332 KB | Output is correct |
17 | Correct | 1 ms | 332 KB | Output is correct |
18 | Correct | 1 ms | 332 KB | Output is correct |
19 | Correct | 1 ms | 332 KB | Output is correct |
20 | Correct | 1 ms | 332 KB | Output is correct |
21 | Correct | 1 ms | 332 KB | Output is correct |
22 | Correct | 1 ms | 332 KB | Output is correct |
23 | Correct | 1 ms | 332 KB | Output is correct |
24 | Correct | 1 ms | 332 KB | Output is correct |
25 | Correct | 1 ms | 312 KB | Output is correct |
26 | Correct | 1 ms | 332 KB | Output is correct |
27 | Correct | 1 ms | 332 KB | Output is correct |
28 | Correct | 1 ms | 332 KB | Output is correct |
29 | Correct | 1 ms | 332 KB | Output is correct |
30 | Correct | 1 ms | 332 KB | Output is correct |
31 | Correct | 1 ms | 332 KB | Output is correct |
32 | Correct | 1 ms | 332 KB | Output is correct |
33 | Correct | 1 ms | 332 KB | Output is correct |
34 | Correct | 5 ms | 432 KB | Output is correct |
35 | Correct | 4 ms | 440 KB | Output is correct |
36 | Correct | 5 ms | 460 KB | Output is correct |
37 | Correct | 5 ms | 440 KB | Output is correct |
38 | Correct | 3 ms | 460 KB | Output is correct |
39 | Correct | 4 ms | 464 KB | Output is correct |
40 | Correct | 3 ms | 332 KB | Output is correct |
41 | Correct | 4 ms | 332 KB | Output is correct |
42 | Correct | 4 ms | 460 KB | Output is correct |
43 | Correct | 4 ms | 460 KB | Output is correct |
44 | Correct | 4 ms | 460 KB | Output is correct |
45 | Correct | 4 ms | 460 KB | Output is correct |
46 | Correct | 4 ms | 460 KB | Output is correct |
47 | Correct | 4 ms | 460 KB | Output is correct |
48 | Correct | 4 ms | 460 KB | Output is correct |
49 | Correct | 4 ms | 460 KB | Output is correct |
50 | Correct | 4 ms | 460 KB | Output is correct |
51 | Correct | 4 ms | 460 KB | Output is correct |
52 | Correct | 4 ms | 460 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 332 KB | Output is correct |
3 | Correct | 0 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 0 ms | 204 KB | Output is correct |
12 | Correct | 1 ms | 204 KB | Output is correct |
13 | Correct | 1 ms | 204 KB | Output is correct |
14 | Correct | 1 ms | 332 KB | Output is correct |
15 | Correct | 1 ms | 332 KB | Output is correct |
16 | Correct | 1 ms | 332 KB | Output is correct |
17 | Correct | 1 ms | 332 KB | Output is correct |
18 | Correct | 1 ms | 332 KB | Output is correct |
19 | Correct | 1 ms | 332 KB | Output is correct |
20 | Correct | 1 ms | 332 KB | Output is correct |
21 | Correct | 1 ms | 332 KB | Output is correct |
22 | Correct | 1 ms | 332 KB | Output is correct |
23 | Correct | 1 ms | 332 KB | Output is correct |
24 | Correct | 1 ms | 332 KB | Output is correct |
25 | Correct | 1 ms | 312 KB | Output is correct |
26 | Correct | 1 ms | 332 KB | Output is correct |
27 | Correct | 1 ms | 332 KB | Output is correct |
28 | Correct | 1 ms | 332 KB | Output is correct |
29 | Correct | 1 ms | 332 KB | Output is correct |
30 | Correct | 1 ms | 332 KB | Output is correct |
31 | Correct | 1 ms | 332 KB | Output is correct |
32 | Correct | 1 ms | 332 KB | Output is correct |
33 | Correct | 1 ms | 332 KB | Output is correct |
34 | Correct | 5 ms | 432 KB | Output is correct |
35 | Correct | 4 ms | 440 KB | Output is correct |
36 | Correct | 5 ms | 460 KB | Output is correct |
37 | Correct | 5 ms | 440 KB | Output is correct |
38 | Correct | 3 ms | 460 KB | Output is correct |
39 | Correct | 4 ms | 464 KB | Output is correct |
40 | Correct | 3 ms | 332 KB | Output is correct |
41 | Correct | 4 ms | 332 KB | Output is correct |
42 | Correct | 4 ms | 460 KB | Output is correct |
43 | Correct | 4 ms | 460 KB | Output is correct |
44 | Correct | 4 ms | 460 KB | Output is correct |
45 | Correct | 4 ms | 460 KB | Output is correct |
46 | Correct | 4 ms | 460 KB | Output is correct |
47 | Correct | 4 ms | 460 KB | Output is correct |
48 | Correct | 4 ms | 460 KB | Output is correct |
49 | Correct | 4 ms | 460 KB | Output is correct |
50 | Correct | 4 ms | 460 KB | Output is correct |
51 | Correct | 4 ms | 460 KB | Output is correct |
52 | Correct | 4 ms | 460 KB | Output is correct |
53 | Correct | 1275 ms | 15444 KB | Output is correct |
54 | Correct | 1286 ms | 15480 KB | Output is correct |
55 | Correct | 1250 ms | 14796 KB | Output is correct |
56 | Correct | 1184 ms | 14976 KB | Output is correct |
57 | Correct | 1193 ms | 15028 KB | Output is correct |
58 | Correct | 1290 ms | 15316 KB | Output is correct |
59 | Correct | 1196 ms | 14796 KB | Output is correct |
60 | Correct | 1207 ms | 14756 KB | Output is correct |
61 | Correct | 1213 ms | 14804 KB | Output is correct |
62 | Correct | 1223 ms | 15032 KB | Output is correct |
63 | Correct | 1215 ms | 15044 KB | Output is correct |
64 | Correct | 1218 ms | 14668 KB | Output is correct |
65 | Correct | 1176 ms | 14084 KB | Output is correct |
66 | Correct | 1191 ms | 14516 KB | Output is correct |
67 | Correct | 1223 ms | 14608 KB | Output is correct |
68 | Correct | 1150 ms | 13868 KB | Output is correct |
69 | Correct | 1268 ms | 15232 KB | Output is correct |
70 | Correct | 1104 ms | 13952 KB | Output is correct |
71 | Correct | 1183 ms | 15324 KB | Output is correct |
72 | Correct | 1182 ms | 15312 KB | Output is correct |
73 | Correct | 1347 ms | 15564 KB | Output is correct |