This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define ub(a,b) upper_bound(a.begin(),a.end(),b)-a.begin();
#define lb(a,b) lower_bound(a.begin(),a.end(),b)-a.begin();
#define vi vector<int>
#define vll vector<ll>
#define pll pair<ll,ll>
#define sz(x) x.size()
#define T pair<double,string>
using namespace std;
const int mxn=2e5+5;
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    int n,m;cin>>n>>m;
    int s[n+1]={0},f[m+1]={0};
    for(int i=1;i<=n;i++)cin>>s[i];for(int i=1;i<=m;i++)cin>>f[i];
    int l=0,r=1e9+1;
    int lr[n+1]={0};
    while(l<r){
        int k=(l+r)>>1;
        int idx=1;memset(lr,0,sizeof lr);
        for(int i=1;i<=n;i++){
            while(idx<=m&&s[i]-k<=f[idx]&&f[idx]<=s[i])idx++,lr[i]=1;
            while(idx<=m&&s[i]<=f[idx]&&f[idx]<=s[i]+k&&lr[i]!=1)idx++,lr[i]=2;
        }if(idx!=m+1)l=k+1;
        else r=k;
    }if(l==1e9+1){cout<<-1;return 0;}
    memset(lr,0,sizeof lr);int idx=1;
    for(int i=1;i<=n;i++){
        while(idx<=m&&s[i]-l<=f[idx]&&f[idx]<=s[i])idx++,lr[i]=1;
        while(idx<=m&&s[i]<=f[idx]&&f[idx]<=s[i]+l&&lr[i]!=1)idx++,lr[i]=2;
    }cout<<l<<'\n';
    for(int i=1;i<=n;i++)cout<<(lr[i]==1?"L":"R");
}
Compilation message (stderr)
Main.cpp: In function 'int main()':
Main.cpp:21:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   21 |     for(int i=1;i<=n;i++)cin>>s[i];for(int i=1;i<=m;i++)cin>>f[i];
      |     ^~~
Main.cpp:21:36: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   21 |     for(int i=1;i<=n;i++)cin>>s[i];for(int i=1;i<=m;i++)cin>>f[i];
      |                                    ^~~| # | 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... |