This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#pragma GCC optimize("O1,O2,O3,Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
typedef long long ll;
typedef pair<int, int> ii;
typedef vector<int> vi;
const char nl = '\n';
void fastIO() {
ios::sync_with_stdio(false);
cin.tie(0);
}
const int MAX = 1e5 + 5;
int N, M;
vector<ll> a(MAX); // sprinklers
vector<ll> b(MAX); // flowers
string check(ll K) { // width is K
multiset<ll> all;
for (int i = 0; i < M; i++) {
all.insert(b[i]);
}
string res = "";
for (int i = 0; i < (1 << N); i++) {
string dir;
for (int j = 0; j < N; j++) {
if (i & (1 << j))
dir += 'L';
else
dir += 'R';
}
// check if all covered
bool works = true;
for (int j = 0; j < M; j++) {
bool covered = false;
for (int k = 0; k < N; k++) {
ll lb = a[k];
ll ub = a[k];
if (dir[k] == 'L')
lb -= K;
else
ub += K;
if (lb <= b[j] && b[j] <= ub)
covered = true;
}
if (!covered) {
works = false;
break;
}
}
if (works)
return dir;
}
return "!";
}
int main() {
fastIO();
cin>>N>>M;
for (int i = 0; i < N; i++) {
cin>>a[i];
}
for (int i = 0; i < M; i++) {
cin>>b[i];
}
// cout<<check(6)<<endl;
ll low = 0;
ll high = 1e18;
ll ans = -1; // minimum radius to water all flowers
string ansr = "";
while (low <= high) { // false, false, false, true, true, true
ll mid = (low + high) / 2;
string res = check(mid);
if (res != "!") {
ans = mid;
ansr = res;
high = mid - 1;
}
else {
low = mid + 1;
}
}
// cout<<"ANSWER: ";
cout<<ans<<endl;
if (ans != -1)
cout<<ansr<<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... |