Submission #1280149

#TimeUsernameProblemLanguageResultExecution timeMemory
1280149khanhphucscratchSprinklers (CEOI24_sprinklers)C++20
20 / 100
2093 ms3596 KiB
#include<bits/stdc++.h> #define int long long using namespace std; inline bool getbit(int num, int bit) { return (num >> bit)&1; } string ansstr; bool in_range(int x, int l, int r) { return l <= x && x <= r; } bool check(int x, vector<int> a, vector<int> b) { int n = a.size(); for(int i = 0; i < (1 << n); i++){ bool ok = 1; for(int j : b){ bool curok = 0; for(int k = 0; k < n; k++) if((getbit(i, k) == 0 && in_range(j, a[k]-x, a[k]) == 1) || (getbit(i, k) == 1 && in_range(j, a[k], a[k]+x) == 1)){ curok = 1; break; } if(curok == 0){ok = 0; break;} } if(ok == 1){ ansstr = ""; for(int j = 0; j < n; j++){ if(getbit(i, j) == 0) ansstr += "L"; else ansstr += "R"; } return 1; } } return 0; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, m; cin>>n>>m; vector<int> a(n), b; for(int i = 0; i < n; i++) cin>>a[i]; for(int i = 0; i < m; i++){ int x; cin>>x; if((b.size() == 0 || b.back() != x) && (x > a.back() || *lower_bound(a.begin(), a.end(), x) != x)) b.push_back(x); } if(b.size() == 0){ cout<<0<<'\n'; for(int i = 1; i <= n; i++) cout<<"L"; return 0; } int l = 0, r = 1e9, ans = -1; string str; while(l <= r){ int mid = (l+r)/2; if(check(mid, a, b) == 1){ans = mid; r = mid-1;} else l = mid+1; } cout<<ans<<'\n'; if(ans > -1) cout<<ansstr; }
#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...