Submission #1087760

#TimeUsernameProblemLanguageResultExecution timeMemory
1087760mychecksedadSprinklers (CEOI24_sprinklers)C++17
9 / 100
56 ms5156 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long int #define pb push_back #define en cout << '\n' #define vi vector<int> #define pii pair<int, int> #define ff first #define ss second #define all(x) x.begin(),x.end() const int N = 1e5+100; int n, m, a[N], b[N]; void solve(){ cin >> n >> m; vector<pii> v; for(int i = 1; i <= n; ++i){ cin >> a[i]; v.pb({a[i], 1}); } for(int i = 1; i <= m; ++i){ cin >> b[i]; v.pb({b[i], 0}); } sort(all(v)); string soll; int l = 0, r = 1e9, ans = -1; while(l <= r){ int k = l+r>>1; string sol = ""; bool ok = 1; int last = -1e9, last_not_covered = 2e9; for(int i = 0; i < n+m; ++i){ if(v[i].ss == 0){ if(last >= v[i].ff){ continue; } last_not_covered = min(last_not_covered, v[i].ff); }else{ if(last_not_covered != 2e9 && last_not_covered < v[i].ff){ if(v[i].ff - last_not_covered > k){ ok = 0; break; } last_not_covered = 2e9; sol += 'L'; }else{ last_not_covered = 2e9; last = v[i].ff + k; sol += 'R'; } } } if(last_not_covered != 2e9) ok = 0; if(ok){ ans = k; soll = sol; r = k - 1; }else{ l = k + 1; } } cout << ans << '\n'; if(ans != -1){ cout << soll; } } int main(){ cin.tie(0); ios::sync_with_stdio(0); solve(); return 0; }

Compilation message (stderr)

Main.cpp: In function 'void solve()':
Main.cpp:30:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   30 |   int k = l+r>>1;
      |           ~^~
#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...