Submission #464708

#TimeUsernameProblemLanguageResultExecution timeMemory
464708Hamed5001Cipele (COCI18_cipele)C++14
63 / 90
506 ms106764 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; /* dp[i] = min ugliness if I paired first i shoes dp[i] = */ const int mxN = 5010; int N, M; vector<int> A1, A2; void solve1() { int ans = 0; for (int i = 0; i < N; i++) { ans = max(ans, abs(A1[i]-A2[i])); } cout << ans; } int dp[mxN][mxN]; int fun(int i, int j) { if (i == N) return 0; if (j == M) return INT_MAX; int &ret = dp[i][j]; if (~ret) return ret; ret = min(max(abs(A1[i] - A2[j]), fun(i+1, j+1)), fun(i, j+1)); return ret; } void solve2() { memset(dp, -1, sizeof dp); cout << fun(0, 0); } void solve() { cin >> N >> M; A1.resize(N); A2.resize(M); for (auto& a : A1) cin >> a; for (auto& a : A2) cin >> a; sort(A1.begin(), A1.end()); sort(A2.begin(), A2.end()); if (N == M) { solve1(); return; } if (N > M) { swap(N, M); swap(A1, A2); } solve2(); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); 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...