Submission #81690

#TimeUsernameProblemLanguageResultExecution timeMemory
81690SaboonCipele (COCI18_cipele)C++14
0 / 90
1086 ms263168 KiB
#include <iostream> #include <sstream> #include <queue> #include <stack> #include <vector> #include <cstring> #include <cmath> #include <map> #include <unordered_map> #include <set> #include <algorithm> #include <iomanip> #define F first #define S second #define PB push_back #define PF push_front #define MP make_pair using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; const int maxn = 1e5 + 37; int a[maxn], b[maxn]; int n, m; int match[maxn]; bool visited[maxn]; vector <int> g[maxn]; bool dfs (int v) { if (visited[v]) return false; visited[v] = true; for (auto u : g[v]) { if (match[u] == -1 or dfs (match[u])) { match[u] = v; return true; } } return false; } int maximum_matching() { memset (match, -1, sizeof match); int ret = 0; for (int i = 1; i <= n; i++) { memset (visited, 0, sizeof visited); ret += dfs (i); } return ret; } void make_graph (int x) { for (int i = 1; i <= n; i++) { g[i].clear(); for (int j = 1; j <= m; j++) { if (abs (a[i] - b[j]) <= x) { g[i].PB (j); } } } } int main() { ios_base::sync_with_stdio(false); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) cin >> b[i]; if (n > m) { for (int i = 1; i <= n; i++) { int tmp = a[i]; a[i] = b[i]; b[i] = tmp; } swap (n, m); } int lo = -1, hi = 1000 * 1000 * 1000; while (hi - lo > 1) { int mid = (hi + lo) >> 1; make_graph (mid); if (maximum_matching() == n) hi = mid; else lo = mid; } cout << hi << endl; }
#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...