Submission #637520

#TimeUsernameProblemLanguageResultExecution timeMemory
637520NotLinuxCipele (COCI18_cipele)C++14
0 / 90
134 ms262144 KiB
/**
 * author: NotLinux
 * created: 02.09.2022 ~ 13:30:25
**/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#ifdef LOCAL
    #include "/home/notlinux/debug.h"
#else
    #define debug(x...) void(37)
#endif
void solve(){
    int n,m;cin >> n >> m;
    vector < int > a(n),b(m);
    for(auto &inp : a)cin >> inp;
    for(auto &inp : b)cin >> inp;
    if(n > m){
        vector < int > tempv = a;
        a = b;
        b = tempv;
        int tempa = n;
        n = m;
        m = tempa;
    }
    sort(a.begin(),a.end());
    sort(b.begin(),b.end());
    const int inf = 1e9+7;
    vector < vector < int > > dp(n , vector < int > (m,inf));
    vector < vector < int > > pre(n , vector < int > (m+2,inf));
    for(int i = 0;i<m;i++){
        dp[0][i] = abs(a[0]-b[i]);
        pre[0][i+1] = min(pre[0][i] , dp[0][i]);
    }
    for(int i = 1;i<n;i++){
        for(int j = 0;j<m;j++){
            dp[i][j] = max(pre[i-1][j] , abs(a[i]-b[j]));
            pre[i][j+1] = min(pre[i][j] , dp[i][j]);
        }
    }
    for(int i = 0;i<n;i++){
        debug(dp[i]);
    }
    cout << *min_element(dp[n-1].begin(),dp[n-1].end()) << endl;
}
int32_t main(){
    ios_base::sync_with_stdio(0);cin.tie(nullptr);
    int tt=1;
    //cin >> tt;
    while(tt--)solve();
}

#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...