제출 #1364286

#제출 시각아이디문제언어결과실행 시간메모리
1364286AvianshSprinklers (CEOI24_sprinklers)C++20
9 / 100
97 ms1308 KiB
#include <bits/stdc++.h>

using namespace std;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n,m;
    cin >> n >> m;
    int s[n];
    for(int &i : s){
        cin >> i;
    }
    int f[m];
    for(int &i : f){
        cin >> i;
    }
    char ans[n];
    auto check = [&] (int k){
        //n sprinklers, m flowers both sorted
        int cov = -1;
        for(int i = 0;i<n;i++){
            //see which direction to put this in
            int ind = upper_bound(f,f+m,cov)-f;
            if(ind == m){
                break;
            }
            int pos = f[ind];
            if(pos<s[i]){
                //go left
                ans[i]='L';
                //covered s[i]-k to s[i]
                if(pos>=s[i]-k){
                    //this is now covered so shift cov
                    cov=s[i];
                }
            }
            else{
                //go right
                ans[i]='R';
                //covered s[i] to s[i]+k
                if(pos<=s[i]+k){
                    //now covered so shift cov
                    cov=s[i]+k;
                }
            }
        }
        if(cov>=f[m-1]){
            return 1;
        }
        return 0;
    };
    int lo = 0;
    int hi = 1e9;
    while(lo<hi){
        int mid = (lo+hi)/2;
        if(check(mid)){
            hi=mid;
        }
        else{
            lo=mid+1;
        }
    }
    if(lo==1e9){
        cout << -1;
        return 0;
    }
    check(lo);
    cout << lo << "\n";
    for(char c:ans){
        cout << c;
    }
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…