HDOJ 5610-Baby Ming and Weight lifting

来源:互联网 发布:阿里云计算开发工程师 编辑:程序博客网 时间:2024/05/20 20:05

Baby Ming and Weight lifting

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 222    Accepted Submission(s): 91


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


Input
In the first line contains a single positive integerT, 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 weightedC 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 minimuma+b)
 

Sample Input
21 2 61 4 5
 

Sample Output
2 2Impossible
 

Source
BestCoder Round #69 (div.2) 
题目大意:

就是给出a,b这两个杠铃盘的重量,给出C这个他想要举起这个杠铃的重量,在保证左右两边平衡的状态下,用最少的盘。

解题思路:
暴力即可,注意一下输出为Impossible的情况。
#include<stdio.h>#include<string.h>#include<algorithm>#define INF 0x3f3f3f3f using namespace std;int main(){    int T;    scanf("%d",&T);    while(T--)    {        int a,b,c;        scanf("%d%d%d",&a,&b,&c);        if(c%2!=0)        {            printf("Impossible\n");        }         else        {            int ni=INF,wo1=INF;            int ans1,ans2;            int da,xiao;            da=max(a,b);            xiao=min(a,b);            int uu=c/min(a,b);            for(int i=0;i<=uu;i+=2)            {                if(((c-(xiao*i))/da)%2==0)                {                    ans1=i;                    ans2=(c-(xiao*i))/da;                    if(ans1*xiao+ans2*da==c)                    {                        ni=ans1;                        wo1=ans2;                        break;                        }                }            }            if(ni==INF||wo1==INF)            {                printf("Impossible\n");                }            else            {                if(a<b)                printf("%d %d\n",ans1,ans2);                else                printf("%d %d\n",ans2,ans1);            }        }    }    return 0;}


1 0
原创粉丝点击