Submission #682253

#TimeUsernameProblemLanguageResultExecution timeMemory
682253vjudge1건물 4 (JOI20_building4)C++17
0 / 100
0 ms340 KiB
#include<bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;

#define int long long
#define ll long long
#define pb push_back
#define ppb pop_back
#define F first
#define S second
#define all(x) x.begin(),x.end()
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define freopen(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);

const int N = 1000000 + 5;
const int M = 4000 + 5;
const ll mod = 1e9 + 7;
const ll inf = 1e17;

int n, a[N], b[N], dp[M][M];
char par[M][M];
string s;

void solve(){
    cin >> n;
    n *= 2;
    for(int i = 1; i <= n; i ++){
        cin >> a[i];
    }
    for(int i = 1; i <= n; i++){
        cin >> b[i];
    }
    
    for(int i = 1; i <= n; i++){
        for(int j = 0; j <= n / 2; j++){
            dp[i][j] = inf;
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = 0; j <= min(i, n / 2); j++){
            if(dp[i - 1][j] < b[i]){
                dp[i][j] = b[i];
                par[i][j] = 'B';
            }
            if(j && a[i] < dp[i][j] && dp[i - 1][j - 1] < a[i]){
                dp[i][j] = a[i];
                par[i][j] = 'A';
            }
        }
    }
    if(dp[n][n / 2] != inf){
        int i = n;
        int cnt = n / 2;
        while(i){
            if(par[i][cnt] == 'A'){
                cnt--;
                s += 'A';
            }else{
                s += 'B';
            }
            i--;
        }
        reverse(all(s));
        cout << s;
    }else{
        cout << -1;
    }
}

main() {
    fast
    int tt = 1;
    // cin >> tt;
    while(tt--){
        solve();
    }
}

Compilation message (stderr)

building4.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization("O3")
      | 
building4.cpp:4: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    4 | #pragma GCC optimization("unroll-loops")
      | 
building4.cpp:5: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
    5 | #pragma comment(linker, "/stack:200000000")
      | 
building4.cpp:75:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   75 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...