#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int minLength(const vector<int> &S1, const vector<int> &S2, const vector<int> &S3)
{
int minDistance = INT_MAX;
for (int a : S1)
{
for (int b : S2)
{
for (int c : S3)
{
int distance = abs(a - b) + abs(b - c) + abs(c - a);
minDistance = min(minDistance, distance);
}
}
}
return minDistance;
}
int findMinDistanse(const vector<int> &S1, const vector<int> &S2, const vector<int> &S3)
{
int minDistance = INT_MAX;
int i = 0, j = 0, k = 0;
while (i < S1.size() && j < S2.size() && k < S3.size())
{
int a = S1[i], b = S2[j], c = S3[k];
int currentDistance = abs(a - b) + abs(b - c) + abs(a - c);
minDistance = min(minDistance, currentDistance);
if (a <= b && a <= c)
{
i++;
}
else if (b <= a && b <= c)
{
j++;
}
else
{
k++;
}
}
return minDistance;
}
int main()
{
vector<int> S1 = {-1, 0, 9};
vector<int> S2 = {-25, -10, 10, 11};
vector<int> S3 = {2, 9, 17, 30, 41};
int result1 = minLength(S1, S2, S3);
int result2 = findMinDistanse(S1, S2, S3);
cout << "最小距离 = " << result1 << endl;
cout << "最小距离 = " << result2 << endl;
return 0;
}