/*
struct Point {
    int x;
    int y;
    Point() :
            x(0), y(0) {
    }
    Point(int xx, int yy) {
        x = xx;
        y = yy;
    }
};*/
class Bipartition {
public:
    vector<double> getBipartition(vector<Point> A, vector<Point> B) {
        // write code here
        Point centerA = Point(A[0].x+ A[1].x +A[2].x + A[3].x, A[0].y+A[1].y + A[2].y+A[3].y);
        Point centerB = Point(B[0].x+ B[1].x +B[2].x + B[3].x, B[0].y+B[1].y + B[2].y+B[3].y);

      
        double k= (centerA.y - centerB.y +0.0) /(centerA.x -centerB.x);
        double b = (centerA.y  - centerA.x *k  )/4;
        return {k,b};


    }
};