Submission #413145

#TimeUsernameProblemLanguageResultExecution timeMemory
413145NintsiChkhaidzeBuilding 4 (JOI20_building4)C++14
0 / 100
3 ms460 KiB
#include <bits/stdc++.h> #define pb push_back #define ll long long #define s second #define f first using namespace std; const int N = 500005; int a[N],b[N],c[N],A,B; char s[N]; int main (){ ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL); int n; cin>>n; n*=2; for (int i=1;i<=n;i++) cin>>a[i]; for (int i=1;i<=n;i++) cin>>b[i]; int last = 0; bool check=1; for (int i=1;i<=n;i++){ if (a[i] >= last && b[i] >= last){ if (a[i] < b[i]) A++,c[i] = a[i],s[i] = 'A'; else B++,c[i] = b[i],s[i] = 'B'; } else if (a[i] >= last) A++,c[i] = a[i],s[i] = 'A'; else if (b[i] >= last) B++,c[i] = b[i],s[i] = 'B'; else {check=0; break;} last = c[i]; } c[n+1]=1e9; for (int i=n;i>=1;i--){ if (A > B && s[i] == 'B') continue; if (B > A && s[i] == 'A') continue; if (A == B) continue; if (s[i] == 'B') { if (a[i] >= c[i - 1] && a[i] <= c[i+1]) B--,A++,c[i] = a[i],s[i] = 'A'; } else { if (b[i] >= c[i - 1] && b[i] <= c[i+1]) A--,B++,c[i] = b[i],s[i] = 'B'; } } if (!check || A!=B) cout<<-1; else{ for (int i=1;i<=n;i++) cout<<s[i]; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...