#include "wiring.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll TAILLEMAXI=202, INFINI=1e18;
vector<int> rouges, bleus;
ll memo[TAILLEMAXI][TAILLEMAXI];
int nbrouges, nbbleus;
ll dp(int r, int b){
if (memo[r][b]!=-1){
return memo[r][b];
}
if (r==nbrouges-1 and b==nbbleus-1){
memo[r][b]=abs(rouges[r]-bleus[b]);
return memo[r][b];
}
ll val=INFINI;
if (r!=nbrouges-1){
val=min(val, dp(r+1, b));
}
if (b!=nbbleus-1){
val=min(val, dp(r, b+1));
}
if (b!=nbbleus-1 and r!=nbrouges-1){
val=min(val, dp(r+1, b+1));
}
memo[r][b]=val+abs(rouges[r]-bleus[b]);
return memo[r][b];
}
ll min_total_length(vector<int> r, vector<int> b) {
rouges = r;
bleus = b;
nbrouges = rouges.size();
nbbleus = bleus.size();
for (int i=0;i<=nbrouges;i++){
for (int j=0;j<nbbleus;j++){
memo[i][j]=-1;
}
}
return dp(0,0);
}