Fourth Point!!
#include <iomanip>
#include <iostream>
using namespace std;
template <typename T>
class _point
{
public:
    _point() : x(0), y(0)
    {
    }
    _point(const T &x, const T &y) : x(x), y(y)
    {
    }
    bool operator ==(const _point<T> &p) const
    {
        return x == p.x && y == p.y;
    }
    _point<T> operator +(const _point<T> &p) const
    {
        return _point<T>(x + p.x, y + p.y);
    }
    _point<T> operator -(const _point<T> &p) const
    {
        return _point<T>(x - p.x, y - p.y);
    }
    friend istream &operator >>(istream &is, _point<T> &p)
    {
        is >> p.x >> p.y;
        return is;
    }
    friend ostream &operator <<(ostream &os, const _point<T> &p)
    {
        os << p.x << " " << p.y;
        return os;
    }
private:
    T x, y;
};
using point = _point<double>;
point find_4th_point(point a1, point a2, point b1, point b2)
{
    for (int i = 1; i <= 4; i++) // Try for 4 different combinations.
    {
        switch (i)
        {
        case 2: case 4:
            swap(a1, a2);
            break;
        case 3:
            swap(b1, b2);
            break;
        }
        if (a1 == b1) break;
    }
    return b2 + (a2 - a1); // Simply do the math.
}
int main()
{
    cout << fixed << setprecision(3);
    point a1, a2, b1, b2;
    while (cin >> a1 >> a2 >> b1 >> b2)
    {
        cout << find_4th_point(a1, a2, b1, b2) << endl;
    }
    return 0;
}