Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ALL(v) v.begin(), v.end()
  3. using namespace std;
  4. const int N = 2e5 + 5;
  5. struct point{
  6.     long double x;
  7.     long double y;
  8. };
  9. long double a[3], b[3], c[3], k1, k2, e, f, nu;
  10. point pryam1[3], pryam2[3], toch[3];
  11. int n, h, num;
  12. void get_points( long double a, long double b, long double c ){
  13.     if( a == 0 ) pryam1[num] = point(nu, -c/b), pryam2[num]  = point(1, -c/b); else
  14.     if( b == 0 ) pryam1[num] = (-c/a, nu), pryam2[num]  = (-c/a, 1); else
  15.     if( c == 0 ) pryam1[num] = (nu, nu), pryam2[num]  = (-b, a); else
  16.     pryam1[num] = (nu, -c/b), pryam2[num] = (-c/a, nu);
  17.     num++;
  18. }
  19. void peresech( point a, point b, point c, point d, long double &k1, long double &k2 ){
  20.     long double z = (b.x -a.x) * (d.y-c.y)-(b.y-a.y) * (d.x-c.x);
  21.     k1 = ((d.x-c.x)*(a.y-c.y) - (d.y-c.y)*(a.x-c.x)) / z;
  22.     k1 = ((b.x-a.x)*(a.y-c.y) - (b.y-a.y)*(a.x-c.x)) / z;
  23. }
  24. int main()
  25. {
  26.     ios_base::sync_with_stdio(0);
  27.     freopen( "input.txt", "r", stdin );
  28.     for( int i = 0; i < 3; i++ )
  29.         cin >> a[i] >> b[i] >> c[i];
  30.     for( int i = 0; i < 3; i++ ){
  31.         get_points(a[i], b[i], c[i]);
  32.     }
  33.     for( int i = 0 ; i < 2; i++ ){
  34.         for( int j = i + 1; j < 3; j++ ){
  35.             peresech( pryam1[i], pryam2[i], pryam1[j], pryam2[j], k1, k2 );
  36.             toch[h].x = (b.x-a.x)*k1+a.x;
  37.             toch[h].y = (b.y-a.y)*k1+a.y;
  38.             h++;
  39.         }
  40.     }
  41.     cout << abs((toch[2].x  - toch[0].x) * (toch[1].x - toch[0].x) - (toch[2].y - toch[0].y) * (toch[1].x - toch[0].x)) / 2;
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement