一开始没看清100以内的限制没法下手百度后发现他们都说100以内回去又把题读了读。。。。。理解能力有点问题。。。
数字很小就简单了枚举。。。注意0注意0注意0。我被坑死了开始写好一个没考虑0,wa了发现考虑0后太麻烦了没办法又换种方法重写了重写了。
/*
Id: jinbo wu
TASK:ratios
LANG:C++
*/
#include<bits/stdc++.h>
using namespace std;
int a[5][5];
int main()
{
freopen("ratios.in","r",stdin);
freopen("ratios.out","w",stdout);
int x,y,z;
cin>>x>>y>>z;
for(int i=1;i<=3;i++)
cin>>a[i][1]>>a[i][2]>>a[i][3];
int flag=1;
for(int i=0;i<=100&&flag;i++)
for(int j=0;j<=100&&flag;j++)
{
for(int k=0;k<=100&&flag;k++)
{
if(!i&&!j&&!k)
continue;
int t1=i*a[1][1]+j*a[2][1]+k*a[3][1];
int t2=i*a[1][2]+j*a[2][2]+k*a[3][2];
int t3=i*a[1][3]+j*a[2][3]+k*a[3][3];
if(x!=0)
{
if(t1%x!=0)
continue;
else
{
int temp=t1/x;
if(t2==temp*y&&t3 == temp*z)
{
flag=0;
printf("%d %d %d %d\n",i,j,k,temp);
break;
}
}
}
else if(y!=0)
{
if(t2%y!=0)
continue;
else
{
int temp=t2/y;
if(t1==temp*x&&t3==temp*z)
{
flag=0;
printf("%d %d %d %d\n",i,j,k,temp);
break;
}
}
}
else if(z!=0)
{
if(t3%z!=0)
continue;
else
{
int temp=t3/z;
if(t2==temp*y&&t1==temp*x)
{
flag=0;
printf("%d %d %d %d\n",i,j,k,temp);
break;
}
}
}
}
}
if(flag==1)
printf("NONE\n");
}