Submission #1140546

#TimeUsernameProblemLanguageResultExecution timeMemory
1140546KaleemRazaSyedSprinklers (CEOI24_sprinklers)C++20
26 / 100
558 ms5896 KiB
#include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int s[N], f[N], n, m; bool cover(vector<pair<int,int> > R) { sort(R.begin(), R.end()); multiset<int> rs; int j = 0; for(int i = 0; i < m; i++) { while(j < R.size() && R[j].first <= f[i]) rs.insert(R[j].second), j++; while(rs.size() && *rs.begin() < f[i]) rs.erase(rs.begin()); if(rs.empty()) return false; } return true; } vector<char> create(int x) { vector<char> sol; if(n <= 10) { for(int mask = 0; mask < (1 << n); mask++) { // 0 means left, 1 means right vector<pair<int,int> > ranges(n); for(int i = 0; i < n; i ++) if((1 << i) & mask) ranges[i] = {s[i], s[i] + x}; else ranges[i] = {s[i] - x, s[i]}; if(cover(ranges)) { sol.resize(n); for(int i = 0; i < n; i ++) if((1 << i) & mask) sol[i] = 'R'; else sol[i] = 'L'; break; } } return sol; } else { vector<pair<int,int> > ranges(n); for(int i = 0; i < n; i ++) if(i % 3 == 0) ranges[i] = {s[i], s[i] + x}; else ranges[i] = {s[i] - x, s[i]}; if(cover(ranges)) { sol.resize(n); for(int i = 0; i < n; i ++) if(i % 3 == 0) sol[i] = 'R'; else sol[i] = 'L'; } } return sol; } bool check(int x) { vector<char> sol = create(x); return sol.size(); } int main() { cin >> n >> m; for(int i = 0; i < n; i ++) cin >> s[i]; for(int i = 0; i < m; i++) cin >> f[i]; const int inf = 1e9 + 10; int l = -1, r = inf; while(r - l > 1) { int mid = (l + r) / 2; if(check(mid)) r = mid; else l = mid; } cout << (r == inf ? -1 : r) << endl; vector<char> sol = create(r); for(char i : sol) cout << i; 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...