Baby Ming and Weight lifting
Problem Description
Baby Ming is fond of weight lifting. He has a barbell pole(the weight of which can be ignored) and two different kinds of barbell disks(the weight of which are respectively
and
), the amount of each one being infinite.
Baby Ming prepare to use this two kinds of barbell disks to make up a new one weighted (the barbell must be balanced), he want to know how to do it.
Input
In the first line contains a single positive integer
, indicating number of test case. For each test case: There are three positive integer
, and
.
Output
For each test case, if the barbell weighted
can’t be made up, print Impossible. Otherwise, print two numbers to indicating the numbers of
and
barbell disks are needed. (If there are more than one answer, print the answer with minimum
)
Sample Input
2
1 2 6
1 4 5
Sample Output
2 2
Impossible
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
int a,b,c,t;
cin>>t;
while(t--)
{
cin>>a>>b>>c;
if(c%2!=0)
{
cout<<"Impossible"<<endl;
continue;
}
c=c/2;
int num1=-1,num2=-1;
if(a<b)
for(int i=0;i*a<=c;i++)
{
if((c-i*a)%b==0)
{
num2=(c-i*a)/b;
num1=i;
break;
}
}
else
{
for(int i=0;i*b<=c;i++)
{
if((c-i*b)%a==0)
{
num1=(c-i*b)/a;
num2=i;
break;
}
}
}
if(num1>=0)
{
cout<<num1*2<<' '<<num2*2<<endl;
}
else cout<<"Impossible"<<endl;
}
return 0;
}