Submission #81695

#TimeUsernameProblemLanguageResultExecution timeMemory
81695aminraCipele (COCI18_cipele)C++14
90 / 90
338 ms1436 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MOD = 1e9 + 7; const int MAXN = (int)1e5 + 7; const int infint = (int)1e9; const ll inf = (ll)1e18; int n, m, a[MAXN], b[MAXN]; bool check(ll mid) { if(n <= m) { int last = m; for (int j = n - 1; j >= 0; j--) { int r = upper_bound(b, b + m, a[j] + mid) - b - 1; int l = lower_bound(b, b + m, a[j] - mid) - b; if(l > r) return 0; if(l > last - 1) return 0; last = min(r, last - 1); } return 1; } else { int last = n; for (int j = m - 1; j >= 0; j--) { int r = upper_bound(a, a + n, b[j] + mid) - a - 1; int l = lower_bound(a, a + n, b[j] - mid) - a; if(l > r) return 0; if(l > last - 1) return 0; last = min(r, last - 1); } return 1; } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < m; i++) cin >> b[i]; sort(a, a + n); sort(b, b + m); /*for (int i = 0; i < n; i++) cout << a[i] << " "; cout << endl; for (int i = 0; i < m; i++) cout << b[i] << " "; cout << endl;*/ ll l = -1, r = infint + 1; while(r - l > 1) { ll mid = (l + r) >> 1; if(check(mid)) r = mid; else l = mid; } cout << r; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...