#include #include using namespace std; using ll = long long; using pii = pair; using pll = pair; using vi = vector; using vl = vector; #define rep3(i, a, b, c) for (ll i = (a); i < (b); i += (c)) #define rep2(i, a, b) rep3(i, a, b, 1) #define rep1(i, n) rep2(i, 0, n) #define rep0(n) rep1(aaaaa, n) #define ov4(a, b, c, d, name, ...) name #define rep(...) ov4(__VA_ARGS__, rep3, rep2, rep1, rep0)(__VA_ARGS__) #define per(i, a, b) for (ll i = (a) - 1; i >= (b); i--) #define fore(e, v) for (auto &&e : v) #define all(a) begin(a), end(a) #define sz(a) (ssize(a)) #define lb(v, x) (lower_bound(all(v), x) - begin(v)) #define eb emplace_back template bool chmin(T &a, const S &b) { return a > b ? a = b, 1 : 0; } template bool chmax(T &a, const S &b) { return a < b ? a = b, 1 : 0; } const int INF = 1e9 + 100; const ll INFL = 3e18 + 100; #define i128 __int128_t struct _ { _() { cin.tie(0)->sync_with_stdio(0), cout.tie(0); } } __; int main() { const int N = 3; vector P(N); vl X(N), Y(N); rep(i, N) { cin >> P[i].first >> P[i].second; X[i] = P[i].first; Y[i] = P[i].second; } sort(all(X)), sort(all(Y)); using pdd = pair; // (x+y,x-y) set ans; rep(i, N) { if (i < N && X[i] == X[i + 1]) continue; rep(j, N) { if (j < N && Y[j] == Y[j + 1]) continue; set pxpy, mxpy, pxmy, mxmy; for (auto [x, y] : P) { if (X[i] <= x) { if (Y[i] <= y) { mxmy.insert(-x - y); } else { mxpy.insert(-x + y); } } else { if (Y[i] <= y) { pxmy.insert(+x - y); } else { pxpy.insert(+x + y); } } } if (sz(pxpy) >= 2 || sz(pxmy) >= 2 || sz(mxpy) >= 2 || sz(mxmy) >= 2) { continue; } if ((pxpy.empty() && mxmy.empty()) || (pxmy.empty() && mxpy.empty())) { cout << "-1\n"; return 0; } ll k2_pp = -INFL, k2_pm = -INFL; if (!pxpy.empty() && !mxmy.empty()) { k2_pp = -(*pxpy.begin()) - (*mxmy.begin()); } if (!pxmy.empty() && !mxpy.empty()) { k2_pm = -(*pxmy.begin()) - (*mxpy.begin()); } if (k2_pp == -INFL && k2_pm == -INFL) { cout << "-1\n"; return 0; } if (k2_pp != -INFL && k2_pm != -INFL && k2_pp != k2_pm) { continue; } ll K2 = (k2_pp != -INFL ? k2_pp : k2_pm); pll ret{ (pxpy.empty() ? -K2 - 2 * (*mxmy.begin()) : K2 + 2 * (*pxpy.begin())), (pxmy.empty() ? -K2 - 2 * (*mxpy.begin()) : K2 + 2 * (*pxmy.begin()))}; ans.insert(ret); } } vector out; for (auto [p, m] : ans) { out.push_back(pdd{(p + m) / 4.0, (p - m) / 4.0}); } sort(all(out)); cout << setprecision(10) << fixed; cout<