제출 #1075463

#제출 시각아이디문제언어결과실행 시간메모리
1075463ProtonDecay314Sprinklers (CEOI24_sprinklers)C++17
6 / 100
20 ms3164 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vll;
typedef vector<vll> vvll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pi;
typedef vector<pi> vpi;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;
typedef vector<bool> vb;
typedef set<ll> sll;
#define IOS cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false)
#define INF(dtype) numeric_limits<dtype>::max()
#define NINF(dtype) numeric_limits<dtype>::min()
#define fi first
#define se second

typedef pair<int, vb> pib;

pib solve(int n, int m, const vi& s, const vi& f) {
    vb config(n, false);
    for(int i = 0; i * 3 < n; i++) {
        config[3 * i] = false;
        config[3 * i + 2] = true;
    }
    int ans = 0;

    for(int i = 0; i < m; i++) {
        int l = -1, r = n / 3;

        while(r - l > 1) {
            int mid = (l + r) >> 1;

            if(s[mid * 3] <= f[i]) l = mid;
            else r = mid;
        }

        if(l == -1) ans = max(ans, s[0] - f[i]);
        else if(r == n / 3) ans = max(ans, f[i] - s[l * 3]);
        else ans = max(ans, min(f[i] - s[l * 3], s[r * 3] - f[i]));
    }

    return {ans, config};
}

int main() {
    IOS;

    int n, m;
    cin >> n >> m;

    vi s(n, 0);
    vi f(m, 0);

    for(int& sv : s) cin >> sv;
    for(int& fv : f) cin >> fv;

    auto [ans, config] = solve(n, m, s, f);

    cout << ans << "\n";

    if(ans != -1) {
        for(const bool& b : config) cout << (b ? 'R' : 'L');
        cout << "\n";
    }
    cout << flush;

    return 0;
}
#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...