제출 #1220924

#제출 시각아이디문제언어결과실행 시간메모리
1220924KindaGoodGamesSprinklers (CEOI24_sprinklers)C++20
0 / 100
2092 ms1096 KiB
#include<bits/stdc++.h> using namespace std; int INF = numeric_limits<int>::max()/2; int 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] ? "L" : "R"); } 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...