我的代码:
#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;
}