Submission #1143955

#TimeUsernameProblemLanguageResultExecution timeMemory
1143955gyg전선 연결 (IOI17_wiring)C++20
7 / 100
28 ms3608 KiB
#include "wiring.h" #include <bits/stdc++.h> using namespace std; #define sig signed #define int long long #define arr array #define vec vector const int N = 2e3 + 5, M = 2e3 + 5, INF = 1e18; int n, m; arr<int, N> a; arr<int, M> b; arr<arr<int, M>, N> dp; void dp_cmp() { for (int i = 1; i <= n + 1; i++) dp[i].fill(INF); dp[n + 1][m + 1] = 0; for (int i = n; i >= 1; i--) { for (int j = m; j >= 1; j--) { int cr = 0; for (int k = i; k <= n; k++) { cr += abs(a[k] - b[j]); dp[i][j] = min(dp[i][j], cr + dp[k + 1][j + 1]); } cr = 0; for (int k = j; k <= m; k++) { cr += abs(b[k] - a[i]); dp[i][j] = min(dp[i][j], cr + dp[i + 1][k + 1]); } } } } int min_total_length(vec<sig> _a, vec<sig> _b) { n = _a.size(), m = _b.size(); for (int i = 1; i <= n; i++) a[i] = _a[i - 1]; for (int i = 1; i <= m; i++) b[i] = _b[i - 1]; dp_cmp(); return dp[1][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...