답안 #528877

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
528877 2022-02-21T16:20:35 Z ajpiano 건물 4 (JOI20_building4) C++17
11 / 100
249 ms 56928 KB
#include <bits/stdc++.h>

using namespace std;

#define f first
#define s second

typedef long long ll;
typedef pair<int,int> pi;

const int large = 1e4+5;

bitset<large/2> dp[large][2];

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;
    vector<int> a(2*n), b(2*n);
    for(int i = 0; i < 2*n; i++) cin >> a[i];
    for(int i = 0; i < 2*n; i++) cin >> b[i];
    dp[0][0][0] = 1;
    dp[0][1][1] = 1;
    for(int i = 1; i < 2*n; i++){
        if(a[i-1] <= a[i]) dp[i][0] = dp[i-1][0];
        if(b[i-1] <= b[i]) dp[i][1] = dp[i-1][1]<<1;
        if(b[i-1] <= a[i]) dp[i][0] |= dp[i-1][1];
        if(a[i-1] <= b[i]) dp[i][1] |= dp[i-1][0]<<1;
    }
    if(dp[2*n-1][0][n]|dp[2*n-1][1][n]){
        string ans = "";
        bool cur = 0;
        int num = n;
        if(dp[2*n-1][0][n]){
            ans += 'A';
            num = n;
            if(a[2*n-1] >= a[2*n-2] && dp[2*n-2][0][num]) cur = 0;
            else cur = 1;
        }else{
            ans += 'B';
            num = n-1;
            if(b[2*n-1] >= b[2*n-2] && dp[2*n-2][1][num]) cur = 1;
            else cur = 0;
        }
        for(int i = 2*n-2; i > 0; i--){
            if(cur == 0){
                ans += 'A';
                num = num;
                if(a[i] >= a[i-1] && dp[i-1][0][num]) cur = 0;
                else cur = 1;
            }else{
                ans += 'B';
                num = num-1;
                if(b[i] >= b[i-1] && dp[i-1][1][num]) cur = 1;
                else cur = 0;
            }
        }
        if(cur) ans += 'B';
        else ans += 'A';
        reverse(ans.begin(), ans.end());
        cout << ans << "\n";
    }else cout << "-1\n";
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 324 KB Output is correct
5 Correct 4 ms 4940 KB Output is correct
6 Correct 4 ms 4816 KB Output is correct
7 Correct 4 ms 4300 KB Output is correct
8 Correct 6 ms 4652 KB Output is correct
9 Correct 5 ms 4684 KB Output is correct
10 Correct 4 ms 4304 KB Output is correct
11 Correct 4 ms 5068 KB Output is correct
12 Correct 4 ms 5324 KB Output is correct
13 Correct 5 ms 5324 KB Output is correct
14 Correct 5 ms 5324 KB Output is correct
15 Correct 5 ms 5332 KB Output is correct
16 Correct 5 ms 5324 KB Output is correct
17 Correct 5 ms 5328 KB Output is correct
18 Correct 4 ms 5324 KB Output is correct
19 Correct 5 ms 5324 KB Output is correct
20 Correct 4 ms 5256 KB Output is correct
21 Correct 4 ms 5324 KB Output is correct
22 Correct 5 ms 5324 KB Output is correct
23 Correct 5 ms 5324 KB Output is correct
24 Correct 5 ms 5324 KB Output is correct
25 Correct 4 ms 5324 KB Output is correct
26 Correct 5 ms 5324 KB Output is correct
27 Correct 5 ms 5324 KB Output is correct
28 Correct 4 ms 4812 KB Output is correct
29 Correct 4 ms 5324 KB Output is correct
30 Correct 7 ms 4812 KB Output is correct
31 Correct 5 ms 5328 KB Output is correct
32 Correct 4 ms 4428 KB Output is correct
33 Correct 5 ms 5324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 324 KB Output is correct
5 Correct 4 ms 4940 KB Output is correct
6 Correct 4 ms 4816 KB Output is correct
7 Correct 4 ms 4300 KB Output is correct
8 Correct 6 ms 4652 KB Output is correct
9 Correct 5 ms 4684 KB Output is correct
10 Correct 4 ms 4304 KB Output is correct
11 Correct 4 ms 5068 KB Output is correct
12 Correct 4 ms 5324 KB Output is correct
13 Correct 5 ms 5324 KB Output is correct
14 Correct 5 ms 5324 KB Output is correct
15 Correct 5 ms 5332 KB Output is correct
16 Correct 5 ms 5324 KB Output is correct
17 Correct 5 ms 5328 KB Output is correct
18 Correct 4 ms 5324 KB Output is correct
19 Correct 5 ms 5324 KB Output is correct
20 Correct 4 ms 5256 KB Output is correct
21 Correct 4 ms 5324 KB Output is correct
22 Correct 5 ms 5324 KB Output is correct
23 Correct 5 ms 5324 KB Output is correct
24 Correct 5 ms 5324 KB Output is correct
25 Correct 4 ms 5324 KB Output is correct
26 Correct 5 ms 5324 KB Output is correct
27 Correct 5 ms 5324 KB Output is correct
28 Correct 4 ms 4812 KB Output is correct
29 Correct 4 ms 5324 KB Output is correct
30 Correct 7 ms 4812 KB Output is correct
31 Correct 5 ms 5328 KB Output is correct
32 Correct 4 ms 4428 KB Output is correct
33 Correct 5 ms 5324 KB Output is correct
34 Runtime error 249 ms 56928 KB Execution killed with signal 11
35 Halted 0 ms 0 KB -