Submission #1212408

#TimeUsernameProblemLanguageResultExecution timeMemory
1212408yanbSprinklers (CEOI24_sprinklers)C++20
20 / 100
2096 ms1096 KiB
#include <bits/stdc++.h>
 
#define int long long
 
using namespace std;

int n, m;
string ans;
vector<int> s, f;

bool check(int x) {
    for (int mask = 0; mask < (1 << n); mask++) {
        for (int i = 0; i < n; i++) {
            ans[i] = ((mask & (1 << i)) ? 'R' : 'L');
        }

        vector<bool> ok(m);
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (ans[i] == 'L') {
                    ok[j] = ok[j] || (s[i] - x <= f[j] && f[j] <= s[i]);
                } else {
                    ok[j] = ok[j] || (s[i] <= f[j] && f[j] <= s[i] + x);
                }
            }
        }

        bool aok = 1;
        for (int i = 0; i < m; i++) aok = aok && ok[i];

        if (aok) return 1;
    }
    return 0;
}

signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    
    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];

    for (int i = 0; i < n; i++) ans += '_';

    int l = -1, r = 1e10;
    while (r - l > 1) {
        int md = (r + l) / 2;
        if (check(md)) {
            r = md;
        } else {
            l = md;
        }
    }

    if (r == 1e10) {
        cout << "-1\n";
    } else {
        check(r);
        cout << r << "\n" << ans << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...