/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static double SegIntersection(double x11, double y11, double x12, double y12,
                                    double x21, double y21, double x22, double y22)
    {
        double dx1 = x12-x11;
        double dy1 = y12-y11;
        double dx2 = x22-x21;
        double dy2 = y22-y21;
        double dxx = x11-x21;
        double dyy = y11-y21;
        double div, t, s;

        div = dy2*dx1-dx2*dy1;
        if (Math.abs(div) < 1.0e-10)  //better to compare abs(div) with small Eps
           return 99999.0;  //collinear case

        t = (dx1*dyy-dy1*dxx) / div;
        if (t < 0 || t > 1.0)
            return 88888.8; //intersection outside the first segment
        s = (dx2*dyy-dy2*dxx) / div;
        if (s < 0 || s > 1.0)  
            return 77777.7;  //intersection outside the second segment
        return x11 + s * dx1;
    }
	
	public static void main (String[] args) throws java.lang.Exception
	{
	   System.out.println(SegIntersection(0, 0, 1, -1, 2, 1, 1, 2));
	   System.out.println(SegIntersection(0, 0, 2, 0, 4, -1, 1, 2));
	   System.out.println(SegIntersection(0, 0, 4, 0, 2, 1, 1, 2));
	   System.out.println(SegIntersection(0, 0, 4, 0, 4, -1, 1, 2));
	}
}