Submission #1152949

#TimeUsernameProblemLanguageResultExecution timeMemory
1152949_fractalCipele (COCI18_cipele)C++20
90 / 90
46 ms1096 KiB
#include <bits/stdc++.h> using namespace std; #define F first #define S second #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() #define make_unique(x) sort(all(x)), x.erase(unique(all(x)), x.end()) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); mt19937_64 Rng(chrono::steady_clock::now().time_since_epoch().count()); typedef long long ll; typedef long double ld; typedef unsigned long long ull; const int N = 1e5 + 200; const int M = 1e6; const int inf = 2e9 + 3; const ll INF = 1e18; int n, m, l[N], r[N]; bool check(int D) { for (int i = 1, j = 1; i <= n; ++i) { int found = -1; while (j <= m && abs(l[i] - r[j]) > D) { j++; } if (j == m + 1) { return false; } else { //l[i] --- r[j] j++; } } return true; } int main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> m; for (int i = 1; i <= n; ++i) { cin >> l[i]; } for (int i = 1; i <= m; ++i) { cin >> r[i]; } sort(l + 1, l + n + 1); sort(r + 1, r + m + 1); if (n > m) { swap(n, m); swap(l, r); } int L = 0, R = inf, ans = inf; while (L <= R) { int M = (L + R) / 2; if (check(M) == true) { //answer <= M ans = M; R = M - 1; } else { L = M + 1; } } cout << ans << '\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...