Submission #668732

#TimeUsernameProblemLanguageResultExecution timeMemory
668732Mystic03Cipele (COCI18_cipele)C++17
90 / 90
48 ms2908 KiB
#include <bits/stdc++.h> using namespace std; // Binary search for answer. An answer works if you greedily chose elements to // be paired and that works. If an answer works, then all above will work too. const int MAXNM = 1e5 + 3; int n, m, l[MAXNM], r[MAXNM]; bool ok(int val) { int pt = 1; for (int i = 1; i <= n; i++) { if (abs(r[pt] - l[i]) <= val) pt++; if (pt == m + 1) return true; } return pt == m + 1; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m; if (n >= m) { for (int i = 0; i < n; i++) cin >> l[i]; for (int i = 0; i < m; i++) cin >> r[i]; } else { for (int i = 0; i < n; i++) cin >> r[i]; for (int i = 0; i < m; i++) cin >> l[i]; swap(n, m); } sort(l, l + n); sort(r, r + m); int lp = 0, rp = 1e9; while (lp < rp) { int mid = (lp + rp) >> 1; if (ok(mid)) rp = mid; else lp = mid + 1; } cout << lp << '\n'; }
#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...