# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
522877 | 2022-02-06T08:38:37 Z | Cross_Ratio | Monochrome Points (JOI20_monochrome) | C++14 | 1406 ms | 8148 KB |
#include <bits/stdc++.h> #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target ("avx2") using namespace std; struct SegTree { vector<long long int> seg; int MAX; void init(int N) { seg.resize(N+5); MAX = N+5; } void clear() { fill(seg.begin(),seg.end(),0); } long long int sum(int i) { long long int ans = 0; while(i>0) { //cout << i << ' ' << ans << '\n'; ans += seg[i]; i -= (i&-i); } return ans; } void Edit(int i, long long int a) { i++; while(i<MAX) { //cout << i << '\n'; seg[i] += a; i += (i & -i); } } long long int sum(int s, int e) { return sum(e)-sum(s); } }; SegTree tree; vector<int> V; long long int simulate() { //cout << "simul\n"; tree.clear(); vector<int> used; used.resize(V.size()/2); fill(used.begin(),used.end(),-1); long long 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; tree.init(2*N); 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); } V.resize(s2.length()); for(i=0;i<A.size();i++) V[A[i]] = i; long long 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; } long long int v1 = simulate(); for(int j = r; j < r + N; j++) { V[B[j%N]] = j-r; } long long int v2 = simulate(); 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()); } cout << ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 0 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 0 ms | 204 KB | Output is correct |
11 | Correct | 1 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 | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 0 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 0 ms | 204 KB | Output is correct |
11 | Correct | 1 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 | 204 KB | Output is correct |
15 | Correct | 2 ms | 204 KB | Output is correct |
16 | Correct | 1 ms | 204 KB | Output is correct |
17 | Correct | 1 ms | 204 KB | Output is correct |
18 | Correct | 1 ms | 204 KB | Output is correct |
19 | Correct | 1 ms | 204 KB | Output is correct |
20 | Correct | 1 ms | 204 KB | Output is correct |
21 | Correct | 1 ms | 204 KB | Output is correct |
22 | Correct | 1 ms | 204 KB | Output is correct |
23 | Correct | 1 ms | 204 KB | Output is correct |
24 | Correct | 1 ms | 204 KB | Output is correct |
25 | Correct | 1 ms | 204 KB | Output is correct |
26 | Correct | 1 ms | 204 KB | Output is correct |
27 | Correct | 1 ms | 204 KB | Output is correct |
28 | Correct | 1 ms | 204 KB | Output is correct |
29 | Correct | 1 ms | 204 KB | Output is correct |
30 | Correct | 1 ms | 204 KB | Output is correct |
31 | Correct | 1 ms | 204 KB | Output is correct |
32 | Correct | 1 ms | 204 KB | Output is correct |
33 | Correct | 1 ms | 204 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 0 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 0 ms | 204 KB | Output is correct |
11 | Correct | 1 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 | 204 KB | Output is correct |
15 | Correct | 2 ms | 204 KB | Output is correct |
16 | Correct | 1 ms | 204 KB | Output is correct |
17 | Correct | 1 ms | 204 KB | Output is correct |
18 | Correct | 1 ms | 204 KB | Output is correct |
19 | Correct | 1 ms | 204 KB | Output is correct |
20 | Correct | 1 ms | 204 KB | Output is correct |
21 | Correct | 1 ms | 204 KB | Output is correct |
22 | Correct | 1 ms | 204 KB | Output is correct |
23 | Correct | 1 ms | 204 KB | Output is correct |
24 | Correct | 1 ms | 204 KB | Output is correct |
25 | Correct | 1 ms | 204 KB | Output is correct |
26 | Correct | 1 ms | 204 KB | Output is correct |
27 | Correct | 1 ms | 204 KB | Output is correct |
28 | Correct | 1 ms | 204 KB | Output is correct |
29 | Correct | 1 ms | 204 KB | Output is correct |
30 | Correct | 1 ms | 204 KB | Output is correct |
31 | Correct | 1 ms | 204 KB | Output is correct |
32 | Correct | 1 ms | 204 KB | Output is correct |
33 | Correct | 1 ms | 204 KB | Output is correct |
34 | Correct | 9 ms | 392 KB | Output is correct |
35 | Correct | 7 ms | 396 KB | Output is correct |
36 | Correct | 7 ms | 392 KB | Output is correct |
37 | Correct | 7 ms | 392 KB | Output is correct |
38 | Correct | 6 ms | 388 KB | Output is correct |
39 | Correct | 7 ms | 392 KB | Output is correct |
40 | Correct | 6 ms | 332 KB | Output is correct |
41 | Correct | 6 ms | 332 KB | Output is correct |
42 | Correct | 7 ms | 332 KB | Output is correct |
43 | Correct | 8 ms | 392 KB | Output is correct |
44 | Correct | 7 ms | 332 KB | Output is correct |
45 | Correct | 8 ms | 332 KB | Output is correct |
46 | Correct | 7 ms | 332 KB | Output is correct |
47 | Correct | 7 ms | 332 KB | Output is correct |
48 | Correct | 8 ms | 332 KB | Output is correct |
49 | Correct | 8 ms | 332 KB | Output is correct |
50 | Correct | 7 ms | 396 KB | Output is correct |
51 | Correct | 7 ms | 392 KB | Output is correct |
52 | Correct | 8 ms | 332 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 0 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 0 ms | 204 KB | Output is correct |
11 | Correct | 1 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 | 204 KB | Output is correct |
15 | Correct | 2 ms | 204 KB | Output is correct |
16 | Correct | 1 ms | 204 KB | Output is correct |
17 | Correct | 1 ms | 204 KB | Output is correct |
18 | Correct | 1 ms | 204 KB | Output is correct |
19 | Correct | 1 ms | 204 KB | Output is correct |
20 | Correct | 1 ms | 204 KB | Output is correct |
21 | Correct | 1 ms | 204 KB | Output is correct |
22 | Correct | 1 ms | 204 KB | Output is correct |
23 | Correct | 1 ms | 204 KB | Output is correct |
24 | Correct | 1 ms | 204 KB | Output is correct |
25 | Correct | 1 ms | 204 KB | Output is correct |
26 | Correct | 1 ms | 204 KB | Output is correct |
27 | Correct | 1 ms | 204 KB | Output is correct |
28 | Correct | 1 ms | 204 KB | Output is correct |
29 | Correct | 1 ms | 204 KB | Output is correct |
30 | Correct | 1 ms | 204 KB | Output is correct |
31 | Correct | 1 ms | 204 KB | Output is correct |
32 | Correct | 1 ms | 204 KB | Output is correct |
33 | Correct | 1 ms | 204 KB | Output is correct |
34 | Correct | 9 ms | 392 KB | Output is correct |
35 | Correct | 7 ms | 396 KB | Output is correct |
36 | Correct | 7 ms | 392 KB | Output is correct |
37 | Correct | 7 ms | 392 KB | Output is correct |
38 | Correct | 6 ms | 388 KB | Output is correct |
39 | Correct | 7 ms | 392 KB | Output is correct |
40 | Correct | 6 ms | 332 KB | Output is correct |
41 | Correct | 6 ms | 332 KB | Output is correct |
42 | Correct | 7 ms | 332 KB | Output is correct |
43 | Correct | 8 ms | 392 KB | Output is correct |
44 | Correct | 7 ms | 332 KB | Output is correct |
45 | Correct | 8 ms | 332 KB | Output is correct |
46 | Correct | 7 ms | 332 KB | Output is correct |
47 | Correct | 7 ms | 332 KB | Output is correct |
48 | Correct | 8 ms | 332 KB | Output is correct |
49 | Correct | 8 ms | 332 KB | Output is correct |
50 | Correct | 7 ms | 396 KB | Output is correct |
51 | Correct | 7 ms | 392 KB | Output is correct |
52 | Correct | 8 ms | 332 KB | Output is correct |
53 | Correct | 1374 ms | 8148 KB | Output is correct |
54 | Correct | 1395 ms | 7904 KB | Output is correct |
55 | Correct | 1335 ms | 7764 KB | Output is correct |
56 | Correct | 1274 ms | 7760 KB | Output is correct |
57 | Correct | 1254 ms | 7760 KB | Output is correct |
58 | Correct | 1406 ms | 7768 KB | Output is correct |
59 | Correct | 1299 ms | 7464 KB | Output is correct |
60 | Correct | 1353 ms | 7764 KB | Output is correct |
61 | Correct | 1300 ms | 7888 KB | Output is correct |
62 | Correct | 1291 ms | 7892 KB | Output is correct |
63 | Correct | 1295 ms | 7892 KB | Output is correct |
64 | Correct | 1244 ms | 7516 KB | Output is correct |
65 | Correct | 1231 ms | 7508 KB | Output is correct |
66 | Correct | 1247 ms | 7388 KB | Output is correct |
67 | Correct | 1276 ms | 7424 KB | Output is correct |
68 | Correct | 1149 ms | 7132 KB | Output is correct |
69 | Correct | 1337 ms | 7888 KB | Output is correct |
70 | Correct | 1168 ms | 7212 KB | Output is correct |
71 | Correct | 1232 ms | 8016 KB | Output is correct |
72 | Correct | 1252 ms | 7952 KB | Output is correct |
73 | Correct | 1306 ms | 8148 KB | Output is correct |