#include <iostream>
#include <algorithm>
using namespace std;
void quicksort(int* a, int p, int r)
{
if (p < r)
{
int x = a[p + (rand()%(r-p+1))];
int i = p - 1, j = r + 1;
while (true)
{
for (--j; j >= p && a[j] > x; --j);
for (++i; i <= r && a[i] < x; ++i);
//while (a[--j] > x);
//while (a[++i] < x);
if (i < j)
{
swap(a[i], a[j]);
}
else
break;
}
quicksort(a, p, j);
quicksort(a, j + 1, r);
}
}
int main()
{
int w[3][100] = { 0 }, i;
int a[100][100] = { 0 };
cin >> w[1][0] >> w[2][0];
for (i = 1; i <= w[1][0]; ++i)
cin >> w[1][i];
for (i = 1; i <= w[2][0]; ++i)
cin >> w[2][i];
if (w[1][0] > w[2][0])
{
for (i = 1; i <= w[1][0]; ++i)
{
swap(w[1][i], w[2][i]);
}
swap(w[1][0], w[2][0]);
}
quicksort(&w[1][0], 1, w[1][0]);
quicksort(&w[2][0], 1, w[2][0]);
for (i = 1; i <= w[1][0]; ++i)
{
a[i][i] = a[i - 1][i - 1] + abs(w[1][i]+w[2][i]);
for (int j = i + 1; j <= w[2][0]; ++j)
{
a[i][j] = a[i - 1][j - 1] + abs(w[1][i] + w[2][j]);
if (a[i][j] > a[i][j - 1])
a[i][j] = a[i][j - 1];
}
}
cout << a[w[1][0]][w[2][0]] << endl;
system("pause");
return 0;
}
#include <algorithm>
using namespace std;
void quicksort(int* a, int p, int r)
{
if (p < r)
{
int x = a[p + (rand()%(r-p+1))];
int i = p - 1, j = r + 1;
while (true)
{
for (--j; j >= p && a[j] > x; --j);
for (++i; i <= r && a[i] < x; ++i);
//while (a[--j] > x);
//while (a[++i] < x);
if (i < j)
{
swap(a[i], a[j]);
}
else
break;
}
quicksort(a, p, j);
quicksort(a, j + 1, r);
}
}
int main()
{
int w[3][100] = { 0 }, i;
int a[100][100] = { 0 };
cin >> w[1][0] >> w[2][0];
for (i = 1; i <= w[1][0]; ++i)
cin >> w[1][i];
for (i = 1; i <= w[2][0]; ++i)
cin >> w[2][i];
if (w[1][0] > w[2][0])
{
for (i = 1; i <= w[1][0]; ++i)
{
swap(w[1][i], w[2][i]);
}
swap(w[1][0], w[2][0]);
}
quicksort(&w[1][0], 1, w[1][0]);
quicksort(&w[2][0], 1, w[2][0]);
for (i = 1; i <= w[1][0]; ++i)
{
a[i][i] = a[i - 1][i - 1] + abs(w[1][i]+w[2][i]);
for (int j = i + 1; j <= w[2][0]; ++j)
{
a[i][j] = a[i - 1][j - 1] + abs(w[1][i] + w[2][j]);
if (a[i][j] > a[i][j - 1])
a[i][j] = a[i][j - 1];
}
}
cout << a[w[1][0]][w[2][0]] << endl;
system("pause");
return 0;
}