Advertisement
Guest User

Untitled

a guest
Jul 12th, 2014
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.79 KB | None | 0 0
  1. using System;
  2.  
  3. class Triangle
  4. {
  5.     static void Main()
  6.     {
  7.         int aX = int.Parse(Console.ReadLine());
  8.         int aY = int.Parse(Console.ReadLine());
  9.         int bX = int.Parse(Console.ReadLine());
  10.         int bY = int.Parse(Console.ReadLine());
  11.         int cX = int.Parse(Console.ReadLine());
  12.         int cY = int.Parse(Console.ReadLine());
  13.  
  14.         double lineA = calculateLine(bX, aX, bY, aY);
  15.         double lineB = calculateLine(cX, bX, cY, bY);
  16.         double lineC = calculateLine(cX, aX, cY, aY);
  17.  
  18.         if (isTriangle(lineA,lineB,lineC))
  19.         {
  20.             Console.WriteLine("Yes");
  21.            
  22.             double p = (lineA + lineB + lineC) / 2;
  23.             double area = p * (p - lineA) * (p - lineB) * (p - lineC);
  24.             area = GetSquareRoot(area, 0, area);
  25.             Console.WriteLine("{0:f2}",area);
  26.         }
  27.         else
  28.         {
  29.             Console.WriteLine("No");
  30.             Console.WriteLine("{0:f2}",calculateLine(aX,bX,aY,bY));
  31.         }
  32.     }
  33.  
  34.     static double calculateLine(int x2, int x1, int y2, int y1)
  35.     {
  36.         double lineToSqrt = ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
  37.         lineToSqrt = GetSquareRoot(lineToSqrt, 0, lineToSqrt);
  38.         return lineToSqrt;
  39.     }
  40.  
  41.     static bool isTriangle(double a, double b, double c)
  42.     {
  43.         bool isTriangle = a + b > c && b + c > a && a + c > b;
  44.         return isTriangle;
  45.     }
  46.  
  47.     public static double GetSquareRoot(double n, double low, double high)
  48.     {
  49.         double errorMargin = 0.001;
  50.         double sqrt = (low + high) / 2;
  51.         double diff = sqrt * sqrt - n;
  52.         if (diff > errorMargin)
  53.             return GetSquareRoot(n, low, sqrt);
  54.         if (-diff > errorMargin)
  55.             return GetSquareRoot(n, sqrt, high);
  56.         return sqrt;
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement