Submission #959630

# Submission time Handle Problem Language Result Execution time Memory
959630 2024-04-08T14:37:40 Z AndreiBOTO Building 4 (JOI20_building4) C++14
0 / 100
2 ms 2396 KB
#include <bits/stdc++.h>

#pragma optimize GCC ("Ofast")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

///#include <tryhardmode>
///#include <GODMODE::ON>

using namespace std;

#define int long long

const int INF=1e10;
const int NMAX=1e6+5;

long long dp[NMAX][2];
int v[NMAX][2];

int n;

void get_dp(int x)
{
    int i,j,k;
    for(i=n;i>0;i--)
    {
        for(j=0;j<2;j++)
        {
            dp[i][j]=-INF;
            for(k=0;k<2;k++)
            {
                if(v[i-1][j]<v[i][k])
                {
                    if(k==x)
                        dp[i][j]=max(dp[i][j],dp[i+1][k]+1);
                    else
                        dp[i][j]=max(dp[i][j],dp[i+1][k]);
                }
            }
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int i,k;
    cin>>n;
    n*=2;
    for(k=0;k<2;k++)
    {
        for(i=1;i<=n;i++)
            cin>>v[i][k];
    }
    for(i=1;i>=0;i--)
    {
        get_dp(i);
        if(dp[1][0]<n/2)
        {
            cout<<-1;
            exit(0);
        }
    }
    int curr=0,kon=n/2;
    for(i=1;i<=n;i++)
    {
        if(v[i][1]>=curr && dp[i+1][1]>=kon)
        {
            cout<<"B";
            curr=v[i][1];
        }
        else
        {
            cout<<"A";
            kon--;
            curr=v[i][0];
        }
    }
    return 0;
}

Compilation message

building4.cpp:3: warning: ignoring '#pragma optimize GCC' [-Wunknown-pragmas]
    3 | #pragma optimize GCC ("Ofast")
      |
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 2 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Incorrect 1 ms 2392 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 2 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Incorrect 1 ms 2392 KB Output isn't correct
5 Halted 0 ms 0 KB -