#include <bits/stdc++.h>
#define pb push_back
#define all(x) begin(x), end(x)
using namespace std;
#define N 2000050
int n, v[2][N];
char t[2]={'A','B'};
int dpmin[N][2], dpmax[N][2];
int solve_min(int i, int flag){
if(i == 0) return 0;
if(dpmin[i][flag] != -1) return dpmin[i][flag];
int ans=(int)(1e8);
for(int c=0;c<2;c++)
if(v[c][i] <= v[flag][i+1]) ans = min(ans, solve_min(i-1, c) + c);
return dpmin[i][flag]=ans;
}
int solve_max(int i, int flag){
if(i == 0) return 0;
if(dpmax[i][flag] != -1) return dpmax[i][flag];
int ans=-(int)(1e8);
for(int c=0;c<2;c++)
if(v[c][i] <= v[flag][i+1]) ans = max(ans, solve_max(i-1, c) + c);
return dpmax[i][flag]=ans;
}
int main(){
ios::sync_with_stdio(false); cin.tie(0);
cin>>n;
// if(n>3000)return 0;
n *= 2;
for(int i = 1; i <= n; i++) cin>>v[0][i];
for(int i = 1; i <= n; i++) cin>>v[1][i];
v[0][n+1] = v[1][n+1]=(int)(1e9);
memset(dpmin,-1,sizeof dpmin);
memset(dpmax,-1,sizeof dpmax);
string s;
int qb=n/2,ant=0, qa=n/2;
// cout<<solve_min(n, 0)<<" "<<solve_max(n, 0)<<"\n";
for(int i=n;i>=1;i--){
if(solve_min(i, ant) <= qb and qb <= solve_max(i, ant)){
//testa colocar A
int mn1 = solve_min(i - 1, 0), mx1 = solve_max(i-1, 0);
int mn2 = solve_min(i - 1, 1), mx2 = solve_max(i-1, 1);
if(mn1 <= qb and qb <= mx1 and qa and v[0][i] <= v[ant][i+1]) s.pb('A'),ant=0, qa--;
else s.pb('B'), qb--,ant=1;
}
else cout<<"-1\n", exit(0);
}
reverse(all(s));
if(qb != 0 or qa != 0) cout<<"-1\n";
else cout<<s<<"\n";
}
Compilation message
building4.cpp: In function 'int main()':
building4.cpp:42:8: warning: unused variable 'mn2' [-Wunused-variable]
42 | int mn2 = solve_min(i - 1, 1), mx2 = solve_max(i-1, 1);
| ^~~
building4.cpp:42:35: warning: unused variable 'mx2' [-Wunused-variable]
42 | int mn2 = solve_min(i - 1, 1), mx2 = solve_max(i-1, 1);
| ^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
18 ms |
31744 KB |
Output is correct |
2 |
Correct |
18 ms |
31596 KB |
Output is correct |
3 |
Correct |
17 ms |
31596 KB |
Output is correct |
4 |
Correct |
19 ms |
31596 KB |
Output is correct |
5 |
Correct |
18 ms |
31724 KB |
Output is correct |
6 |
Correct |
19 ms |
31852 KB |
Output is correct |
7 |
Correct |
19 ms |
31864 KB |
Output is correct |
8 |
Correct |
18 ms |
31872 KB |
Output is correct |
9 |
Correct |
18 ms |
31852 KB |
Output is correct |
10 |
Correct |
19 ms |
31852 KB |
Output is correct |
11 |
Correct |
19 ms |
32000 KB |
Output is correct |
12 |
Correct |
19 ms |
31980 KB |
Output is correct |
13 |
Correct |
19 ms |
31980 KB |
Output is correct |
14 |
Correct |
19 ms |
31980 KB |
Output is correct |
15 |
Correct |
19 ms |
31980 KB |
Output is correct |
16 |
Correct |
19 ms |
31980 KB |
Output is correct |
17 |
Correct |
19 ms |
31980 KB |
Output is correct |
18 |
Correct |
19 ms |
31980 KB |
Output is correct |
19 |
Correct |
19 ms |
31980 KB |
Output is correct |
20 |
Correct |
21 ms |
31980 KB |
Output is correct |
21 |
Correct |
18 ms |
31980 KB |
Output is correct |
22 |
Correct |
18 ms |
31980 KB |
Output is correct |
23 |
Correct |
18 ms |
31980 KB |
Output is correct |
24 |
Correct |
19 ms |
31980 KB |
Output is correct |
25 |
Correct |
19 ms |
31980 KB |
Output is correct |
26 |
Correct |
18 ms |
31980 KB |
Output is correct |
27 |
Correct |
20 ms |
31900 KB |
Output is correct |
28 |
Correct |
18 ms |
31852 KB |
Output is correct |
29 |
Correct |
19 ms |
31980 KB |
Output is correct |
30 |
Correct |
18 ms |
31852 KB |
Output is correct |
31 |
Correct |
18 ms |
31980 KB |
Output is correct |
32 |
Correct |
18 ms |
31852 KB |
Output is correct |
33 |
Correct |
19 ms |
32108 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
18 ms |
31744 KB |
Output is correct |
2 |
Correct |
18 ms |
31596 KB |
Output is correct |
3 |
Correct |
17 ms |
31596 KB |
Output is correct |
4 |
Correct |
19 ms |
31596 KB |
Output is correct |
5 |
Correct |
18 ms |
31724 KB |
Output is correct |
6 |
Correct |
19 ms |
31852 KB |
Output is correct |
7 |
Correct |
19 ms |
31864 KB |
Output is correct |
8 |
Correct |
18 ms |
31872 KB |
Output is correct |
9 |
Correct |
18 ms |
31852 KB |
Output is correct |
10 |
Correct |
19 ms |
31852 KB |
Output is correct |
11 |
Correct |
19 ms |
32000 KB |
Output is correct |
12 |
Correct |
19 ms |
31980 KB |
Output is correct |
13 |
Correct |
19 ms |
31980 KB |
Output is correct |
14 |
Correct |
19 ms |
31980 KB |
Output is correct |
15 |
Correct |
19 ms |
31980 KB |
Output is correct |
16 |
Correct |
19 ms |
31980 KB |
Output is correct |
17 |
Correct |
19 ms |
31980 KB |
Output is correct |
18 |
Correct |
19 ms |
31980 KB |
Output is correct |
19 |
Correct |
19 ms |
31980 KB |
Output is correct |
20 |
Correct |
21 ms |
31980 KB |
Output is correct |
21 |
Correct |
18 ms |
31980 KB |
Output is correct |
22 |
Correct |
18 ms |
31980 KB |
Output is correct |
23 |
Correct |
18 ms |
31980 KB |
Output is correct |
24 |
Correct |
19 ms |
31980 KB |
Output is correct |
25 |
Correct |
19 ms |
31980 KB |
Output is correct |
26 |
Correct |
18 ms |
31980 KB |
Output is correct |
27 |
Correct |
20 ms |
31900 KB |
Output is correct |
28 |
Correct |
18 ms |
31852 KB |
Output is correct |
29 |
Correct |
19 ms |
31980 KB |
Output is correct |
30 |
Correct |
18 ms |
31852 KB |
Output is correct |
31 |
Correct |
18 ms |
31980 KB |
Output is correct |
32 |
Correct |
18 ms |
31852 KB |
Output is correct |
33 |
Correct |
19 ms |
32108 KB |
Output is correct |
34 |
Correct |
234 ms |
39404 KB |
Output is correct |
35 |
Correct |
355 ms |
116900 KB |
Output is correct |
36 |
Correct |
357 ms |
115540 KB |
Output is correct |
37 |
Correct |
357 ms |
117368 KB |
Output is correct |
38 |
Correct |
346 ms |
117332 KB |
Output is correct |
39 |
Correct |
330 ms |
116644 KB |
Output is correct |
40 |
Correct |
351 ms |
122848 KB |
Output is correct |
41 |
Correct |
347 ms |
118308 KB |
Output is correct |
42 |
Correct |
362 ms |
120740 KB |
Output is correct |
43 |
Correct |
378 ms |
123708 KB |
Output is correct |
44 |
Correct |
381 ms |
123744 KB |
Output is correct |
45 |
Correct |
387 ms |
123616 KB |
Output is correct |
46 |
Correct |
359 ms |
123744 KB |
Output is correct |
47 |
Correct |
360 ms |
122804 KB |
Output is correct |
48 |
Correct |
358 ms |
122720 KB |
Output is correct |
49 |
Correct |
364 ms |
123360 KB |
Output is correct |
50 |
Correct |
387 ms |
122720 KB |
Output is correct |
51 |
Correct |
376 ms |
122976 KB |
Output is correct |
52 |
Correct |
299 ms |
111840 KB |
Output is correct |
53 |
Correct |
295 ms |
111968 KB |
Output is correct |
54 |
Correct |
272 ms |
111840 KB |
Output is correct |
55 |
Correct |
278 ms |
111584 KB |
Output is correct |
56 |
Correct |
357 ms |
123872 KB |
Output is correct |
57 |
Correct |
329 ms |
118368 KB |
Output is correct |
58 |
Correct |
343 ms |
118880 KB |
Output is correct |
59 |
Correct |
359 ms |
119008 KB |
Output is correct |
60 |
Correct |
306 ms |
114084 KB |
Output is correct |
61 |
Correct |
322 ms |
119264 KB |
Output is correct |
62 |
Correct |
317 ms |
118112 KB |
Output is correct |
63 |
Correct |
322 ms |
119392 KB |
Output is correct |
64 |
Correct |
311 ms |
116388 KB |
Output is correct |
65 |
Correct |
321 ms |
119320 KB |
Output is correct |