#include <bits/stdc++.h>
using namespace std;
struct line {
  long double a, b, c;
};
struct pt {
  long double x, y;
};
long long res(line a, pt b) { return a.a * b.x + a.b + b.y + a.c; }
long double dst(pt a, pt b) {
  return sqrt((long double)(a.x - b.x) * (a.x - b.x) +
              (long double)(a.y - b.y) * (a.y - b.y));
}
int main() {
  ios_base::sync_with_stdio(false);
  cout.precision(11);
  cin.tie(0);
  long double ans = 8e9;
  line l;
  pt a, b, a1, a2, b1, b2;
  cin >> l.a >> l.b >> l.c >> a.x >> a.y >> b.x >> b.y;
  ans = abs(a.x - b.x) + abs(a.y - b.y);
  a1 = {a.x, (-l.c - l.a * a.x) / l.b};
  a2 = {(-l.c - l.b * a.y) / l.a, a.y};
  b1 = {b.x, (-l.c - l.a * b.x) / l.b};
  b2 = {(-l.c - l.b * b.y) / l.a, b.y};
  ans = min(ans, dst(a, a1) + dst(a1, b1) + dst(b1, b));
  ans = min(ans, dst(a, a2) + dst(a2, b1) + dst(b1, b));
  ans = min(ans, dst(a, a1) + dst(a1, b2) + dst(b2, b));
  ans = min(ans, dst(a, a2) + dst(a2, b2) + dst(b2, b));
  cout << ans;
}
