fork download
  1. import java.util.*;
  2.  
  3. class Main{
  4. public static void main (String[] args) throws java.lang.Exception{
  5. Scanner scan = new Scanner(System.in);
  6. double Ua, Ub, numerator_a, numerator_b, denominator;
  7. double x1 = scan.nextDouble();
  8. double y1 = scan.nextDouble();
  9. double x2 = scan.nextDouble();
  10. double y2 = scan.nextDouble();
  11. double x3 = scan.nextDouble();
  12. double y3 = scan.nextDouble();
  13. double x4 = scan.nextDouble();
  14. double y4 = scan.nextDouble();
  15.  
  16. denominator=(y4-y3)*(x1-x2)-(x4-x3)*(y1-y2);
  17. if (denominator == 0){
  18. if ( (x1*y2-x2*y1)*(x4-x3) - (x3*y4-x4*y3)*(x2-x1) == 0 && (x1*y2-x2*y1)*(y4-y3) - (x3*y4-x4*y3)*(y2-y1) == 0) System.out.print("Отрезки пересекаются");
  19. else System.out.print("Отрезки не пересекаются");
  20. }
  21. else{
  22. numerator_a=(x4-x2)*(y4-y3)-(x4-x3)*(y4-y2);
  23. numerator_b=(x1-x2)*(y4-y2)-(x4-x2)*(y1-y2);
  24. Ua=numerator_a/denominator;
  25. Ub=numerator_b/denominator;
  26. if (Ua >=0 && Ua <=1 && Ub >=0 && Ub <=1) System.out.print("Отрезки пересекаются");
  27. else System.out.print("Отрезки не пересекаются");
  28. }
  29. }
  30. }
Success #stdin #stdout 0.14s 31228KB
stdin
1	1	2	2	2	2	1	1
stdout
Отрезки пересекаются