个人感觉我的解法比官方题解好理解得多
因为是任意一个法向量嘛,不妨设$x=1$
然后解一个二元一次方程就可以解决了
但是因为要求输出三个整数
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
int x1,y1,z1,x2,y2,z2,x,y,z;
signed main()
{
while(scanf("%lld%lld%lld%lld%lld%lld",&x1,&y1,&z1,&x2,&y2,&z2)==)
{
x=(y2*z1-y1*z2)*y2;
z=(y1*x2-x1*y2)*y2;
y=-x2*(y2*z1-y1*z2)-z2*(y1*x2-x1*y2);
int g=__gcd(x,__gcd(y,z));
x/=g,y/=g,z/=g;
//这两句gcd取最小值用的,因为怕解出来爆long long
printf("%lld %lld %lld\n",x,y,z);
}
return ;
}