Submission #1220929

#TimeUsernameProblemLanguageResultExecution timeMemory
1220929KindaGoodGamesSprinklers (CEOI24_sprinklers)C++20
20 / 100
2097 ms1608 KiB
#include<bits/stdc++.h> using namespace std; #define int long long int INF = numeric_limits<int>::max()/2; int32_t main(){ int n,m; cin >> n >> m; vector<int> spr(n); vector<int> flow(m); for(int i = 0; i < n; i++){ cin >> spr[i]; } for(int i = 0; i < m; i++){ cin >> flow[i]; } int p2 = 1 << n; int mi = INF; vector<bool> best(n); for(int t = 0; t < p2; t++){ // true => left vector<bool> cur(n); set<int> left, right; for(int i = 0; i < n; i++){ if(t & (1 << i)){ cur[i] = true; left.insert(spr[i]); }else{ right.insert(spr[i]); } } int cmax = 0; for(int i = 0; i < m; i++){ auto lit = left.upper_bound(flow[i]); auto rit = right.lower_bound(flow[i]); int cmi = INF; if(lit != left.begin()){ lit--; cmi = min((flow[i]-(*lit)),cmi); } if(rit != right.end()){ cmi = min((*rit)-flow[i],cmi); } cmax = max(cmi,cmax); } if(cmax < mi){ mi = cmax; best = cur; } } if(mi == INF){ cout << -1 << endl; return 0; } cout << mi << endl; for(int i = 0; i < n; i++){ cout << (best[i] ? "R" : "L"); } cout <<endl; }
#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...