#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int int64_t
int n, m;
vector<int> s, f;
pair<bool, string> bs(int k){
    string st;
    int rw=-1, i=0;
    for (auto u: f){
        //cout<<u<<"\n";
        while (rw<u){
            if (i==n or u<s[i]-k){
                return {false, ""};
            }
            if (u<s[i]){
                st+='L';
                rw=s[i];
            } else {
                rw=s[i]+k;
                st+='R';
            }
            i++;
        }
    }
    while (i<n){
        st+='L';
        i++;
    }
    return {true, st};
}
signed main(){
    cin.tie(0); ios_base::sync_with_stdio(NULL);
    cin>>n>>m;
    s.resize(n);
    f.resize(m);
    for (int i=0; i<n; i++){
        cin>>s[i];
    }
    for (int i=0; i<m; i++){
        cin>>f[i];
    }
    int le=0, ri=1e10;
    while (le<=ri){
        int mi=(le+ri)/2;
        pair<bool, string> p=bs(mi);
        if (p.first){
            //cout<<"a "<<mi<<"\n";
            ri=mi-1;
        } else {
            //cout<<"b "<<mi<<"\n";
            le=mi+1;
        }
    }
    if (le>1e10){
        cout<<-1<<"\n";
        return 0;
    }
    cout<<le<<"\n"<<bs(le).second<<"\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... |