Submission #1193506

#TimeUsernameProblemLanguageResultExecution timeMemory
1193506UnforgettableplSprinklers (CEOI24_sprinklers)C++20
9 / 100
36 ms2120 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long


int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int N,M;
    cin >> N >> M;
    vector<int> S(N+1);
    vector<int> F(M+1);
    for(int i=1;i<=N;i++)cin>>S[i];
    for(int i=1;i<=M;i++)cin>>F[i];
    vector<bool> turn(N+1); // true is right
    auto solve = [&](int K){
        int iterFlower = 1;
        for(int i=1;i<=N;i++){
            if(iterFlower!=M+1 and F[iterFlower]<S[i]-K)return false;
            if(iterFlower!=M+1 and F[iterFlower]<S[i])turn[i]=false;
            else turn[i]=true;
            int t;
            if(turn[i])t=S[i]+K;
            else t=S[i];
            while(iterFlower!=M+1 and F[iterFlower]<=t)iterFlower++;
        }
        return iterFlower==M+1;
    };
    int ans = -1;
    for(int jump=(1ll<<31);jump;jump/=2){
        if(!solve(ans+jump))ans+=jump;
    }
    ans++;
    if(ans>1e9)cout<<"-1\n";
    else {
        cout << ans << '\n';
        for(int i=1;i<=N;i++)if(turn[i])cout<<'R';
            else cout << 'L';
        cout << '\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...