求纠错(内含代码+question)

img

我的代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int gcd(long long  a,long long  b){
    return b==0?a:gcd(b,a%b);
}
struct node{
    long double x,y;
};
int main(){
    node a,b,c;
    cin>>a.x>>a.y>>b.x>>b.y>>c.x>>c.y;
    double S=abs((a.x*b.y-a.y*b.x+ b.x*c.y-b.y*c.x+c.x*a.y-c.y*a.x)/2);
    ll l1=(gcd(abs(b.x-a.x),abs(b.y-a.y)))-1;
    ll l2=(gcd(abs(c.x-b.x),abs(c.y-b.y)))-1;
    ll l3=(gcd(abs(c.x-a.x),abs(c.y-a.y)))-1;
    ll in=S+1-((l1+l2+l3+3))/2;
    ll all=l1+l2+l3+3;
    cout<<all<<" "<<in<<" "<<S*2;
    return 0;
}