#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N,M;
cin >> N >> M;
vector<int> S(N+1);
vector<int> F(M+1);
for(int i=1;i<=N;i++)cin>>S[i];
for(int i=1;i<=M;i++)cin>>F[i];
vector<bool> turn(N+1); // true is right
auto solve = [&](int K){
int iterFlower = 1;
for(int i=1;i<=N;i++){
if(iterFlower!=M+1 and F[iterFlower]<S[i]-K)return false;
if(iterFlower!=M+1 and F[iterFlower]<S[i])turn[i]=false;
else turn[i]=true;
int t;
if(turn[i])t=S[i]+K;
else t=S[i];
while(iterFlower!=M+1 and F[iterFlower]<=t)iterFlower++;
}
return iterFlower==M+1;
};
int ans = -1;
for(int jump=(1ll<<31);jump;jump/=2){
if(!solve(ans+jump))ans+=jump;
}
ans++;
if(ans>1e9)cout<<"-1\n";
else {
cout << ans << '\n';
for(int i=1;i<=N;i++)if(turn[i])cout<<'R';
else cout << 'L';
cout << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |