This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "wiring.h"
#include "bits/stdc++.h"
using namespace std;
const int N = 202;
int n, m;
long long dp[N][N];
int dis (int i, int j) {
return abs(i - j);
}
long long bt (int i, int j, const vector<int>& r, const vector<int>& b) {
if (i == n && j == m) {
return 0;
}
if (i == n || j == m) {
return 1e15;
}
long long& ret = dp[i][j];
if (ret != -1) {
return ret;
}
ret = 1e15;
long long tmp = 0;
for (int k = j; k < m; ++k) {
tmp += dis(r[i], b[k]);
ret = min(ret, bt(i + 1, k + 1, r, b) + tmp);
}
return ret;
}
long long min_total_length(std::vector<int> r, std::vector<int> b) {
if (r.size() > b.size()) {
swap(r, b);
}
n = (int) r.size();
m = (int) b.size();
memset(dp, -1, sizeof dp);
return bt(0, 0, r, b);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |