fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Main{
  6. public static void main (String[] args) throws java.lang.Exception{
  7. Scanner in = new Scanner(System.in);
  8. PrintWriter out = new PrintWriter(System.out);
  9. double ax = in.nextDouble();
  10. double ay = in.nextDouble();
  11. double az = in.nextDouble();
  12. double bx = in.nextDouble();
  13. double by = in.nextDouble();
  14. double bz = in.nextDouble();
  15. double cx = in.nextDouble();
  16. double cy = in.nextDouble();
  17. double cz = in.nextDouble();
  18. double A1A2 = Math.sqrt(ax*ax+ay*ay+az*az); //вычислим длину ребра А1A2
  19. double A1A3 = Math.sqrt(bx*bx+by*by+bz*bz);//вычислим длину ребра А1A3
  20. double cosa =(ax*bz+ay*by+az*bz)/(A1A2*A1A3);//вычислим косинус угла между ребрами А1A2 и А1A3
  21. double sina = Math.sqrt(1-cosa*cosa);//вычислим их синус
  22. double s1 = 0.5*A1A2*A1A3*sina;//найдём площадь поверхности
  23. double A1A4 = Math.sqrt(cx*cx+cy*cy+cz*cz);//вычислим длину ребра А1A4
  24. double cosb =(ax*cx+ay*cy+az*cz)/(A1A2*A1A4);//вычислим косинус угла между ребрами А1A2 и А1A4
  25. double sinb = Math.sqrt(1-cosb*cosb);//вычислим их синус
  26. double s2 = 0.5*A1A2*A1A4*sinb;//найдём площадь поверхности
  27. double cosc =(bx*cx+by*cy+bz*cz)/(A1A2*A1A3);//вычислим косинус угла между ребрами А1A3 и А1A4
  28. double sinc = Math.sqrt(1-cosc*cosc);//вычислим их синус
  29. double s3 = 0.5*A1A3*A1A4*sinc;//найдём площадь поверхности
  30. double A2A3 = Math.sqrt((cx-bx)*(cx-bx)+(cy-by)*(cy-by)+(cz-bz)*(cz-bz));//вычислим длину ребра А2A3
  31. double A2A4 = Math.sqrt((cx-ax)*(cx-ax)+(cy-ay)*(cy-ay)+(cz-az)*(cz-az));//вычислим длину ребра А2A4
  32. double cosd =((cx-bx)*(cx-ax)+(cy-ay)*(cy-by)+(cz-az)*(cz-bz))/(A2A3*A2A4);//вычислим косинус угла между ребрами А2A3 и А2A4
  33. double sind = Math.sqrt(1-cosd*cosd);//вычислим их синус
  34. double s4 = 0.5*A2A3*A2A4*sind;//найдём площадь поверхности
  35. double s = s1+s2+s3+s4;//найдём площадь полной поверхности
  36. System.out.println(s) ;//выведем её результат
  37. }
  38. }
Success #stdin #stdout 0.13s 31320KB
stdin
-3	3	3	3	-3	3	3	3	-3
stdout
69.36068072031335