Submission #916560

#TimeUsernameProblemLanguageResultExecution timeMemory
916560406Cipele (COCI18_cipele)C++17
90 / 90
42 ms3796 KiB
#include <bits/stdc++.h>
#define int int64_t
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)

using namespace std;
using ar = array<int, 2>;

const int64_t INF = 1ll << 60;
const int N = 1e5 + 5;
vector<int> L, R;
int n, m;

bool check(int x) {
       int p = 0;
       FOR(i, 0, n) {
                while (p < m && abs(R[p] - L[i]) > x) ++p;
                if (p == m) return false;
                ++p;
       }
       return true;
}

signed main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr); 
        cin >> n >> m;
        L.resize(n); R.resize(m);
        for (auto &i: L) cin >> i;
        for (auto &i: R) cin >> i;
        if (n > m) {
                swap(n, m);
                swap(L, R);
        }
        sort(L.begin(), L.end());
        sort(R.begin(), R.end());

        int l = -1, r = INF;
        while (l + 1 < r) {
                int m = l + r >> 1;
                if (check(m)) r = m;
                else l = m;
        }
        cout << r << '\n';
        return 0;
}

Compilation message (stderr)

cipele.cpp: In function 'int main()':
cipele.cpp:39:27: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   39 |                 int m = l + r >> 1;
      |                         ~~^~~
#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...