Submission #681543

# Submission time Handle Problem Language Result Execution time Memory
681543 2023-01-13T09:39:51 Z Vladth11 Cipele (COCI18_cipele) C++14
90 / 90
695 ms 5796 KB
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")

#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "

using namespace std;
typedef pair <int, int> pii;
typedef long long ll;

const int NMAX = 100001;
const int VMAX = 41;
const int INF = 1e9;
const int MOD = 1000000009;
const int BLOCK = 318;
const int base = 31;
const int nrbits = 21;

int a[NMAX], b[NMAX];
int n, m;

int f(int poz)
{
    if(poz + m - 1 > n) return 1e9;
    int maxim = 0;
    for(int i = 1; i <= m; i++){
        maxim = max(maxim, abs(a[i + poz - 1] - b[i]));
    }
    return maxim;
}

bool OK(int x){
    multiset <int> st;
    int i;
    for(i = 1; i <= n; i++)
        st.insert(a[i]);
    for(i = 1; i <= m; i++){
        int nou = b[i] - x;
        auto it = st.lower_bound(nou);
        if(it != st.end() && abs((*it) - b[i]) <= x){
            st.erase(it);
            continue;
        }
        return 0;

    }
    return 1;
}

int main() {
#ifdef HOME
    ifstream cin(".in");
    ofstream cout(".out");
#endif // HOME
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int i;
    cin >> n >> m;
    for(i = 1; i <= n; i++)
        cin >> a[i];
    for(i = 1; i <= m; i++)
        cin >> b[i];
    sort(a + 1, a + n + 1);
    sort(b + 1, b + m + 1);
    if(m > n){
        for(i = 1; i <= m; i++){
            swap(a[i], b[i]);
        }
        swap(n, m);
    }
    int r = 0;
    int pas = (1 << 30);
    while(pas){
        if(!OK(r + pas))
            r += pas;
        pas /= 2;
    }
    if(!OK(r)) r++;
    cout << r;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 680 ms 5788 KB Output is correct
2 Correct 695 ms 5796 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 666 ms 5788 KB Output is correct
2 Correct 677 ms 5780 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 340 KB Output is correct
2 Correct 24 ms 612 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 15 ms 616 KB Output is correct
2 Correct 19 ms 608 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 612 KB Output is correct
2 Correct 26 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 596 KB Output is correct
2 Correct 19 ms 600 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 608 KB Output is correct
2 Correct 21 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 566 ms 5616 KB Output is correct
2 Correct 353 ms 3564 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 519 ms 5416 KB Output is correct
2 Correct 536 ms 4988 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 531 ms 5316 KB Output is correct
2 Correct 532 ms 4980 KB Output is correct