hdoj 5610 Baby Ming and Weight lifting 【暴力】【水题】

来源:互联网 发布:创建usb虚拟打印机端口 编辑:程序博客网 时间:2024/05/09 19:10

Baby Ming and Weight lifting

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 727    Accepted Submission(s): 296



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 respectivelya and b), 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 C(the barbell must be balanced), he want to know how to do it.

 

Input
In the first line contains a single positive integer T, indicating number of test case.

For each test case:

There are three positive integer a,b, and C.

1T1000,0<a,b,C1000,ab
 

Output
For each test case, if the barbell weighted C can’t be made up, print Impossible.

Otherwise, print two numbers to indicating the numbers of a and b barbell disks are needed. (If there are more than one answer, print the answer with minimum a+b)
 

Sample Input
21 2 61 4 5
 

Sample Output
2 2Impossible
 

Source
BestCoder Round #69 (div.2)
 

由于杠铃要两边平衡,所以C是奇数的时候直接impossible~

AC代码:

#include<cstdio>#include<cstring>#include<cmath>#include<queue>#define mem(a, b) memset(a, (b), sizeof(a))#define Wi(a) while(a--)#define Si(a) scanf("%d", &a)#define Pi(a) printf("%d\n", (a))#define INF 0x3f3f3f3f#include<algorithm>using namespace std;int main(){int T; Si(T);Wi(T){int a, b, c;scanf("%d%d%d", &a, &b, &c);if(c%2){printf("Impossible\n");continue;}else{int i, j;int ans = INF;int x, y;bool flag = 0;for(i = 0; i <= c/a; i++){for(j = 0; j <= (c-a*i)/b; j++){if(i*a+j*b == c/2){flag = 1;if(ans > i+j ){ans = i+j;x = i, y = j;}}}}if(!flag)  printf("Impossible\n");elseprintf("%d %d\n", 2*x, 2*y);}}return 0;} 



0 0
原创粉丝点击