# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1061118 | vjudge1 | Wiring (IOI17_wiring) | C++17 | 0 ms | 348 KiB |
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 <bits/stdc++.h>
using namespace std;
#define ll long long
ll min_total_length(vector<int> r, vector<int> b)
{
int n=r.size(),m=b.size();
if (n<=200 && m<=200)
{
ll dp[n][m],inf = 1e9;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
dp[i][j]=inf*n*m;
dp[0][0]=abs(r[0]-b[0]);
for (int i=1;i<n;i++)
dp[i][0]=dp[i-1][0]+abs(r[i]-b[0]);
for (int i=1;i<m;i++)
dp[0][i]=dp[0][i-1]+abs(r[0]-b[i]);
for (int i=1;i<n;i++)
for (int j=1;j<m;j++)
{
ll x=0,y=0;
for (int k=j;k>=0;k--)
{
x+=abs(r[i]-b[k]);
if (k)
dp[i][j]=min(dp[i][j],x+dp[i-1][k-1]);
else
dp[i][j]=min(dp[i][j],x);
}
for (int k=i;k>=0;k--)
{
y+=abs(b[j]-r[k]);
if (k)
dp[i][j]=min(dp[i][j],y+dp[k-1][j-1]);
else
dp[i][j]=min(dp[i][j],y);
}
}
return dp[n-1][m-1];
}
}
Compilation message (stderr)
# | 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... |