Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ALL(v) v.begin(), v.end()
- using namespace std;
- const int N = 2e5 + 5;
- struct point{
- long double x;
- long double y;
- };
- long double a[3], b[3], c[3], k1, k2, e, f, nu;
- point pryam1[3], pryam2[3], toch[3];
- int n, h, num;
- void get_points( long double a, long double b, long double c ){
- if( a == 0 ) pryam1[num] = point(nu, -c/b), pryam2[num] = point(1, -c/b); else
- if( b == 0 ) pryam1[num] = (-c/a, nu), pryam2[num] = (-c/a, 1); else
- if( c == 0 ) pryam1[num] = (nu, nu), pryam2[num] = (-b, a); else
- pryam1[num] = (nu, -c/b), pryam2[num] = (-c/a, nu);
- num++;
- }
- void peresech( point a, point b, point c, point d, long double &k1, long double &k2 ){
- long double z = (b.x -a.x) * (d.y-c.y)-(b.y-a.y) * (d.x-c.x);
- k1 = ((d.x-c.x)*(a.y-c.y) - (d.y-c.y)*(a.x-c.x)) / z;
- k1 = ((b.x-a.x)*(a.y-c.y) - (b.y-a.y)*(a.x-c.x)) / z;
- }
- int main()
- {
- ios_base::sync_with_stdio(0);
- freopen( "input.txt", "r", stdin );
- for( int i = 0; i < 3; i++ )
- cin >> a[i] >> b[i] >> c[i];
- for( int i = 0; i < 3; i++ ){
- get_points(a[i], b[i], c[i]);
- }
- for( int i = 0 ; i < 2; i++ ){
- for( int j = i + 1; j < 3; j++ ){
- peresech( pryam1[i], pryam2[i], pryam1[j], pryam2[j], k1, k2 );
- toch[h].x = (b.x-a.x)*k1+a.x;
- toch[h].y = (b.y-a.y)*k1+a.y;
- h++;
- }
- }
- 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;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement