题目
问题 A: 分组(group)
题目描述
小楠今年四年级了!在一天的数学课上,老师介绍了鸡兔同笼问题:
「今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?」
小楠立刻就在脑子里想到了一个类似的问题:有n个小朋友在上体育课,现在老师要对这些小朋友进行分组,既可以x个小朋友分一组,也可以y个分一组,怎么分组才可以让每个小朋友恰好属于一个组。
小楠立刻想到分组方案可能有很多种,所以他想x个一组的组尽量少。
聪明的小楠立刻就想到了方案,所以他想考考同样聪明的你。他告诉了你n、x、y的值,想要你回答他分成x个一组的组数和分成y个一组的组数。
不过小楠可能会搞恶作剧,也就是说可能不存在一种合法的分组方案,这个时候你要告诉他“Impossible”。
输入
一行三个整数n,x,y。
输出
一行两个整数,分别表示分成x个一组的组数和分成y个一组的组数。如果无解,输出 “Impossible”。
样例输入
样例输出
提示
样例输入2
样例输出2
样例输入3
样例输出3
【数据范围】
对于前30% 的数据,保证x=y;
对于所有数据,有1≤x,y≤n, 1≤n≤100。
题解
emmm……本来水题一道,但比赛的时候脑子短路了,只拿了90分……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include<bits/stdc++.h> using namespace std; int n,x,y,flag; int main(){ scanf("%d%d%d",&n,&x,&y); for(int i = 0; i <= n/x; i++){ if((n-x*i)%y == 0){ flag = 1; printf("%d %d\n",i,(n-x*i)/y); break; } } if(flag == 0){ printf("Impossible\n"); } return 0; }
|