这个题可以用什么向量法解,也可以用线性代数里的克莱默法则,但是我看数据量也就100*100*100,所以枚举了~
#include<fstream>
using namespace std;
int main()
{
ifstream fin("ratios.in");
ofstream fout("ratios.out");
int a,b,c,d=1<<30;
int A,B,C,x1[3],x2[3],x3[3];
fin>>A>>B>>C;
for(int i=0;i<3;i++)fin>>x1[i];
for(int i=0;i<3;i++)fin>>x2[i];
for(int i=0;i<3;i++)fin>>x3[i];
for(int i=0;i<=100;i++)
for(int j=0;j<=100;j++)
for(int k=0;k<=100;k++)
{
int y1=x1[0]*i+x2[0]*j+x3[0]*k;
int y2=x1[1]*i+x2[1]*j+x3[1]*k;
int y3=x1[2]*i+x2[2]*j+x3[2]*k;
if(y1*B==y2*A && y1*C==y3*A && y2*C==y3*B && y1>=A)
if(y1/A<d && y1!=0)
{
a=i;
b=j;
c=k;
d=y1/A;
}
}
if(d==1<<30)
{
fout<<"NONE"<<endl;
return 0;
}
fout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
return 0;
}