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>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define ff first
#define ss second
ll ttt;
const ll INF=1e18;
const ll MOD=1e9+7;
const ll N=100007;
ll n,m,k;
int f[N],s[N];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
// freopen("Finput.txt","r",stdin);
// freopen("Foutput.txt","w",stdout);
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>s[i];
}
for(int i=0;i<m;i++){
cin>>f[i];
}
if((n<=10&&m<=1000)||n==1){
int ans=MOD;
int ansmsk=0;
for(int msk=0;msk<(1<<n);msk++){
int curmax=0;
for(int j=0;j<m;j++){
int cur=MOD;
for(int i=0;i<n;i++){
if(
(
(msk&(1<<i)) && s[i]<=f[j]
)||(
(!(msk&(1<<i))) && s[i]>=f[j]
)
){
cur=min(cur,abs(s[i]-f[j]));
}
}
curmax=max(curmax, cur);
}
if(ans>curmax){
ans=curmax;
ansmsk=msk;
}
}
if(ans==MOD){
cout<<-1<<endl;
return 0;
}
cout<<ans<<endl;
for(int i=0;i<n;i++){
if(ansmsk&(1<<i)){
cout<<"R";
}
else{
cout<<"L";
}
}
cout<<endl;
}
else{
int ans=0;
int l=0;
for(int j=0;j<m;j++){
while(l<n-1&&s[l+1]<f[j]){
l++;
}
int dist=abs(f[j]-s[l]);
if(l<n-1){
dist=min(dist,abs(f[j]-s[l+1]));
}
ans=max(ans,dist);
}
cout<<ans<<endl;
for(int i=0;i<n;i+=3){
cout<<"LLR";
}
cout<<endl;
}
}
# | 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... |