이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll min_total_length(vector<int> r, vector<int> b)
{
ll 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);
if (k!=j)
dp[i][j]=min(dp[i][j],dp[i][k]);
}
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);
if (k!=i)
dp[i][j]=min(dp[i][j],dp[k][j]);
}
}
return dp[n-1][m-1];
}
}
컴파일 시 표준 에러 (stderr) 메시지
wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
48 | }
| ^
# | 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... |