Submission #1233573

#TimeUsernameProblemLanguageResultExecution timeMemory
1233573sophiaeternaliaSprinklers (CEOI24_sprinklers)C++20
9 / 100
43 ms2280 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define int int64_t int n, m; vector<int> s, f; pair<bool, string> bs(int k){ string st; int rw=-1, i=0; for (auto u: f){ //cout<<u<<"\n"; while (rw<u){ if (i==n or u<s[i]-k){ return {false, ""}; } if (u<s[i]){ st+='L'; rw=s[i]; } else { rw=s[i]+k; st+='R'; } i++; } } while (i<n){ st+='L'; i++; } return {true, st}; } signed main(){ cin.tie(0); ios_base::sync_with_stdio(NULL); 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]; } int le=0, ri=1e10; while (le<=ri){ int mi=(le+ri)/2; pair<bool, string> p=bs(mi); if (p.first){ //cout<<"a "<<mi<<"\n"; ri=mi-1; } else { //cout<<"b "<<mi<<"\n"; le=mi+1; } } if (le>1e10){ cout<<-1<<"\n"; return 0; } cout<<le<<"\n"<<bs(le).second<<"\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...