33,010
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
int main()
{
int max = 301;
int p1,p2,p3;
int a1,a2,a3,b1,b2,b3,c1,c2,c3;
scanf("%d %d %d",&p1,&p2,&p3);
scanf("%d %d %d",&a1,&a2,&a3);
scanf("%d %d %d",&b1,&b2,&b3);
scanf("%d %d %d",&c1,&c2,&c3);
int x,y,z;
int r1,r2,r3,t;
if(p1 == 0 || p2==0 || p3 == 0){
printf("%s\n","NONE");
return 0;
}
if(p1 != 0 && p2!=0 && p3 != 0){
//i * a1-a3 j * b1-b3 k * c1-c3
for(int i = 0; (i <= 100 && i <= max); i++) {
for(int j = 0; (j <= 100 && j <= max); j++) {
for(int k = 0; (k <= 100 && k <= max); k++) {
x = (a1*i+b1*j+c1*k);
y = (a2*i+b2*j+c2*k);
z = (a3*i+b3*j+c3*k);
//x y z -> p1 p2 p3
//21 28 40 -> 3 4 5
if(x/p1 == y/p2 && y/p2 == z/p3 && (0 == x % p1) && (0 == y % p2) && (0 == z % p3)){
if( i+j+k != 0 && max > i + j + k){
max = i + j + k;
r1 = i; r2 = j; r3 = k;
t = x/p1;
}
}
}
}
}
}
if(max <= 300){
printf("%d %d %d %d\n",r1,r2,r3,t);
}
else{
printf("%s\n","NONE");
}
}