Submission #146381

#TimeUsernameProblemLanguageResultExecution timeMemory
146381badrovinhoCipele (COCI18_cipele)C++11
27 / 90
167 ms1884 KiB
#include <iostream> #include <bits/stdc++.h> #include <algorithm> #include <vector> #include <string> #include <cstring> using namespace std; int l[100005]; int r[100005]; int main (){ int n,m; cin >> n >> m; for (int i = 0; i < n; i++){ cin >> l[i]; } for (int i = 0; i < m; i++){ cin >> r[i]; } sort(l, l + n); sort(r, r + m); int lo = 0; int hi = 1000000000; int mid = hi / 2; while (lo != hi){ if (n >= m){ int raz = n - m; int ptl = 0; int ptr = 0; int sol = 0; for (int i = 0; i < m; i++){ for (int j = 0; j < raz + 1; j++){ if ((abs (l[ptl]-r[ptr])) <= mid){ ptr++; ptl++; } if ((abs (l[ptl]-r[ptr])) > mid){ sol++; ptl++; } } } if (sol > raz){ lo = mid+1; mid = (hi+lo)/2; }else { hi = mid; mid = (hi+lo)/2; } }else { int raz = m - n; int ptl = 0; int ptr = 0; int sol = 0; for (int i = 0; i < n; i++){ for (int j = 0; j < raz + 1; j++){ if ((abs (r[ptr]-l[ptl])) <= mid){ ptr++; ptl++; } if ((abs (r[ptr]-l[ptl])) > mid){ sol++; ptr++; } } } if (sol > raz){ lo = mid+1; mid = (hi+lo)/2; }else { hi = mid; mid = (hi+lo)/2; } } } cout << mid; return 0; }
#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...