# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
919620 | 2024-02-01T09:07:58 Z | mariamp1 | Cipele (COCI18_cipele) | C++14 | 0 ms | 0 KB |
#include<iostream> #include<vector> using namespace std; const int N = 1e5 + 5; int n, m; vector<int> a(N); vector<int> b(N); bool check(int x) { int tmp = 1; for (int i = 1; i <= n; i++) { while (tmp <= m && a[i] - x > b[tmp]) tmp++; if (tmp == m + 1 || a[i] + x < b[tmp]) return false; tmp++; } return true; } int main(){ int n, m; cin >> n >> m; for(int i = 1; i <= n; i++){ cin >> a[i]; } for(int i = 1; i <= m; i++){ cin >> b[i]; } sort(a.begin(), a.end()); sort(b.begin(), b.end()); int l = 0, h = 1e9, ans = 0; while(l <= h){ int mid = (l+h)/2; if(check(mid)){ ans = mid; h = mid-1; } else l = mid + 1; } cout << ans << endl; }