#include <bits/stdc++.h>
using namespace std;
//macros
typedef long long ll;
typedef pair<int, int> ii;
typedef tuple<int, int, int> iii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<iii> viii;
typedef vector<ll> vll;
#define REP(a,b,c) for(int a=int(b); a<int(c); a++)
#define RE(a,c) REP(a,0,c)
#define RE1(a,c) REP(a,1,c+1)
#define REI(a,b,c) REP(a,b,c+1)
#define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--)
#define INF 1e9
#define pb push_back
#define fi first
#define se second
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
//===================//
// Added libraries //
//===================//
//===================//
//end added libraries//
//===================//
void program();
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
program();
}
//===================//
// begin program //
//===================//
const int MX = 2e6;
int n, a[MX][2];
ii dp[MX][2];
string ans;
void fillAns(int i, int j, int k) {
ans[i] = 'A'+j;
if(i == 0) return;
if(a[i][j] >= a[i-1][0] && dp[i-1][0].fi <= k && k <= dp[i-1][0].se) fillAns(i-1,0,k);
else fillAns(i-1,1,k-1);
}
void program() {
cin>>n;
n *= 2;
RE(i,n) cin>>a[i][0];
RE(i,n) cin>>a[i][1];
dp[0][0] = {0,0};
dp[0][1] = {1,1};
REP(i,1,n) RE(j,2) {
dp[i][j] = {INF,-INF};
RE(k,2) {
if(a[i][j] >= a[i-1][k]) {
dp[i][j].fi = min(dp[i][j].fi, dp[i-1][k].fi+j);
dp[i][j].se = max(dp[i][j].se, dp[i-1][k].se+j);
}
}
}
ans.resize(n);
if(dp[n-1][0].fi <= n/2 && n/2 <= dp[n-1][0].se) fillAns(n-1,0,n/2);
else if(dp[n-1][1].fi <= n/2 && n/2 <= dp[n-1][1].se) fillAns(n-1,1,n/2-1);
else {
cout<<-1<<endl;
return;
}
cout<<ans<<endl;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
4 ms |
384 KB |
Output is correct |
3 |
Correct |
4 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
6 ms |
512 KB |
Output is correct |
6 |
Correct |
6 ms |
512 KB |
Output is correct |
7 |
Correct |
6 ms |
512 KB |
Output is correct |
8 |
Correct |
6 ms |
512 KB |
Output is correct |
9 |
Correct |
6 ms |
512 KB |
Output is correct |
10 |
Correct |
6 ms |
512 KB |
Output is correct |
11 |
Correct |
6 ms |
512 KB |
Output is correct |
12 |
Correct |
7 ms |
512 KB |
Output is correct |
13 |
Correct |
6 ms |
512 KB |
Output is correct |
14 |
Correct |
6 ms |
512 KB |
Output is correct |
15 |
Correct |
6 ms |
512 KB |
Output is correct |
16 |
Correct |
6 ms |
512 KB |
Output is correct |
17 |
Correct |
6 ms |
512 KB |
Output is correct |
18 |
Correct |
6 ms |
512 KB |
Output is correct |
19 |
Correct |
6 ms |
512 KB |
Output is correct |
20 |
Correct |
5 ms |
512 KB |
Output is correct |
21 |
Correct |
6 ms |
512 KB |
Output is correct |
22 |
Correct |
5 ms |
512 KB |
Output is correct |
23 |
Correct |
5 ms |
512 KB |
Output is correct |
24 |
Correct |
6 ms |
512 KB |
Output is correct |
25 |
Correct |
5 ms |
512 KB |
Output is correct |
26 |
Correct |
5 ms |
512 KB |
Output is correct |
27 |
Correct |
5 ms |
512 KB |
Output is correct |
28 |
Correct |
5 ms |
512 KB |
Output is correct |
29 |
Correct |
5 ms |
512 KB |
Output is correct |
30 |
Correct |
5 ms |
512 KB |
Output is correct |
31 |
Correct |
6 ms |
512 KB |
Output is correct |
32 |
Correct |
5 ms |
512 KB |
Output is correct |
33 |
Correct |
6 ms |
512 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
4 ms |
384 KB |
Output is correct |
3 |
Correct |
4 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
6 ms |
512 KB |
Output is correct |
6 |
Correct |
6 ms |
512 KB |
Output is correct |
7 |
Correct |
6 ms |
512 KB |
Output is correct |
8 |
Correct |
6 ms |
512 KB |
Output is correct |
9 |
Correct |
6 ms |
512 KB |
Output is correct |
10 |
Correct |
6 ms |
512 KB |
Output is correct |
11 |
Correct |
6 ms |
512 KB |
Output is correct |
12 |
Correct |
7 ms |
512 KB |
Output is correct |
13 |
Correct |
6 ms |
512 KB |
Output is correct |
14 |
Correct |
6 ms |
512 KB |
Output is correct |
15 |
Correct |
6 ms |
512 KB |
Output is correct |
16 |
Correct |
6 ms |
512 KB |
Output is correct |
17 |
Correct |
6 ms |
512 KB |
Output is correct |
18 |
Correct |
6 ms |
512 KB |
Output is correct |
19 |
Correct |
6 ms |
512 KB |
Output is correct |
20 |
Correct |
5 ms |
512 KB |
Output is correct |
21 |
Correct |
6 ms |
512 KB |
Output is correct |
22 |
Correct |
5 ms |
512 KB |
Output is correct |
23 |
Correct |
5 ms |
512 KB |
Output is correct |
24 |
Correct |
6 ms |
512 KB |
Output is correct |
25 |
Correct |
5 ms |
512 KB |
Output is correct |
26 |
Correct |
5 ms |
512 KB |
Output is correct |
27 |
Correct |
5 ms |
512 KB |
Output is correct |
28 |
Correct |
5 ms |
512 KB |
Output is correct |
29 |
Correct |
5 ms |
512 KB |
Output is correct |
30 |
Correct |
5 ms |
512 KB |
Output is correct |
31 |
Correct |
6 ms |
512 KB |
Output is correct |
32 |
Correct |
5 ms |
512 KB |
Output is correct |
33 |
Correct |
6 ms |
512 KB |
Output is correct |
34 |
Correct |
291 ms |
24952 KB |
Output is correct |
35 |
Correct |
293 ms |
30712 KB |
Output is correct |
36 |
Correct |
284 ms |
25464 KB |
Output is correct |
37 |
Correct |
280 ms |
36984 KB |
Output is correct |
38 |
Correct |
277 ms |
38520 KB |
Output is correct |
39 |
Correct |
281 ms |
32892 KB |
Output is correct |
40 |
Correct |
298 ms |
26360 KB |
Output is correct |
41 |
Correct |
279 ms |
26872 KB |
Output is correct |
42 |
Correct |
298 ms |
25720 KB |
Output is correct |
43 |
Correct |
317 ms |
40568 KB |
Output is correct |
44 |
Correct |
317 ms |
40056 KB |
Output is correct |
45 |
Correct |
306 ms |
36088 KB |
Output is correct |
46 |
Correct |
311 ms |
42232 KB |
Output is correct |
47 |
Correct |
299 ms |
27384 KB |
Output is correct |
48 |
Correct |
288 ms |
26744 KB |
Output is correct |
49 |
Correct |
303 ms |
37880 KB |
Output is correct |
50 |
Correct |
322 ms |
26616 KB |
Output is correct |
51 |
Correct |
298 ms |
26360 KB |
Output is correct |
52 |
Correct |
193 ms |
33432 KB |
Output is correct |
53 |
Correct |
196 ms |
33552 KB |
Output is correct |
54 |
Correct |
162 ms |
33016 KB |
Output is correct |
55 |
Correct |
175 ms |
33144 KB |
Output is correct |
56 |
Correct |
301 ms |
36728 KB |
Output is correct |
57 |
Correct |
263 ms |
32120 KB |
Output is correct |
58 |
Correct |
248 ms |
32376 KB |
Output is correct |
59 |
Correct |
260 ms |
31992 KB |
Output is correct |
60 |
Correct |
250 ms |
30840 KB |
Output is correct |
61 |
Correct |
294 ms |
31992 KB |
Output is correct |
62 |
Correct |
261 ms |
31352 KB |
Output is correct |
63 |
Correct |
279 ms |
31852 KB |
Output is correct |
64 |
Correct |
263 ms |
30584 KB |
Output is correct |
65 |
Correct |
270 ms |
32120 KB |
Output is correct |