# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1175633 | superauto | Mecho (IOI09_mecho) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int findMinRadius(vector<int>& cities, vector<int>& towers) {
int n = cities.size(), m = towers.size();
int maxRadius = 0;
for (int i = 0; i < n; i++) {
auto it = lower_bound(towers.begin(), towers.end(), cities[i]);
int dist1 = (it != towers.end()) ? abs(*it - cities[i]) : INT_MAX;
int dist2 = (it != towers.begin()) ? abs(*prev(it) - cities[i]) : INT_MAX;
maxRadius = max(maxRadius, min(dist1, dist2));
}
return maxRadius;
}
int main() {
int n, m;
cin >> n >> m;
vector<int> cities(n), towers(m);
for (int i = 0; i < n; i++) cin >> cities[i];
for (int i = 0; i < m; i++) cin >> towers[i];
cout << findMinRadius(cities, towers) << endl;
return 0;
}