Submission #925125

#TimeUsernameProblemLanguageResultExecution timeMemory
925125AlphaMale06Building 4 (JOI20_building4)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define F first #define S second #define int long long pair<int, int> uni(pair<int, int> p1, pair<int, int> p2){ if(p1.F<0 && p2.F<0)return {-1e9, -1e9}; if(p1.F<0)return p2; if(p2.F<0)return p1; return {min(p1.F, p2.F), max(p1.S, p2.S)}; } const int N =1e6+3; int a[N], b[N]; pair<int, int> dp[N][2]; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; n<<=1; for(int i=0; i< n; i++)cin >> a[i]; for(int i=0; i< n; i++)cin >> b[i]; dp[0][0]={1, 1}; dp[0][1]={0, 0}; for(int i=1; i<n; i++){ dp[i][0]=dp[i][1]={-1e9, -1e9}; if(a[i]>=a[i-1] && a[i]>=b[i-1]){ dp[i][0]=uni(dp[i-1][0], dp[i-1][1]); } else if(a[i]>=a[i-1]){ dp[i][0]=dp[i-1][0]; } else if(a[i]>=b[i]){ dp[i][0]=dp[i-1][1]; } dp[i][0].F++; dp[i][0].S++; if(b[i]>=a[i-1] && b[i]>=b[i-1]){ dp[i][1]=uni(dp[i-1][0], dp[i-1][1]); } else if(b[i]>=a[i-1])dp[i][1]=dp[i-1][0]; else if(b[i]>=b[i-1])dp[i][1]=dp[i-1][1]; if(dp[i][0].F<0 && dp[i][1].F<0){ cout << -1 << '\n'; return; } } pair<int, int> ans={-1, -1}; bool let=0; string cons=""; int cnt=n/2; if(dp[n-1][0].F<=n/2 && dp[n-1][0].S>=n/2){ ans=dp[n-1][0]; cnt--; cons+='A'; } else if(dp[n-1][1].F<=n/2 && dp[n-1][1].S>=n/2){ ans=dp[n-1][1]; let=1; cons+='B'; } else{ cout << -1 << '\n'; return 0; } for(int i=n-2; i>=0; i--){ if(let)swap(a[i+1], b[i+1]); if(a[i+1]>=a[i] && dp[i][0].F<=cnt && dp[i][0].S>=cnt){ cnt--; let=0; cons+='A'; continue; } let=1; cons+='B'; } reverse(cons.begin(), cons.end()); cout << cons << '\n'; }

Compilation message (stderr)

building4.cpp: In function 'int main()':
building4.cpp:52:13: error: return-statement with no value, in function returning 'int' [-fpermissive]
   52 |             return;
      |             ^~~~~~