Submission #1140733

#TimeUsernameProblemLanguageResultExecution timeMemory
1140733MuhammadSaramSprinklers (CEOI24_sprinklers)C++20
9 / 100
600 ms5944 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n,m; cin>>n>>m; int a[n],b[m]; for (int i=0;i<n;i++) cin>>a[i]; for (int i=0;i<m;i++) cin>>b[i]; int s=0,e=1e9+1; while (s+1<e) { int mid=(s+e)/2; set<int> se; for (int i=0;i<m;i++) se.insert(b[i]); bool pos=1; for (int i=0;i<n && !se.empty();i++) { int x=*se.begin(); if (x<a[i]) { if (x<a[i]-mid) pos=0; while (!se.empty() && *se.begin()<=a[i]) se.erase(se.begin()); } else { while (1) { auto it=se.lower_bound(a[i]); if (it==se.end() or *it>a[i]+mid) break; se.erase(it); } } } if (pos && se.empty()) e=mid; else s=mid; } if (e==1e9+1) e=-1; cout<<e<<endl; if (e!=-1) { set<int> se; for (int i=0;i<m;i++) se.insert(b[i]); for (int i=0;i<n;i++) { if (se.empty()) { cout<<'R'; continue; } int x=*se.begin(); if (x<a[i]) { cout<<'L'; while (!se.empty() && *se.begin()<=a[i]) se.erase(se.begin()); } else { cout<<'R'; while (1) { auto it=se.lower_bound(a[i]); if (it==se.end() or *it>a[i]+e) break; se.erase(it); } } } cout<<endl; } 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...